
数据结构
文章平均质量分 66
真快啊夏天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言---大数相加
#include #include #define Max 1002void print(char []);void addBigNum(char a[],char b[],char sum[]);int main(){ char a[Max] = {0}; char b[Max] = {0}; char sum[Max] ={0}; gets(a); gets(b);原创 2017-03-17 17:15:45 · 439 阅读 · 0 评论 -
简单顺序表实现
#include #include #define MAX_LENGTH 20typedef struct{ char name[20]; double price;}BOOK;typedef struct{ BOOK *list; int length;}Sqlist;int InitList(Sqlist *); //初始化顺序表void PrintLis原创 2017-06-14 23:52:00 · 596 阅读 · 0 评论 -
二叉树的创建与遍历(递归)
#include #include typedef char ElemType;typedef struct BitNode{ ElemType data; struct BitNode *lchild, *rchild;}BitNode,*BitTree;CreateBitTree(BitTree *T){ ElemType c; scanf("%c",&c); if原创 2017-05-07 15:18:41 · 381 阅读 · 0 评论 -
KMP算法
分析:第一次看这个算法的时候觉得应该还算简单,真正写的时候才发现,涉及了很多种情况,要完整弄清楚还真不是件简单的事情引用百度百科:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。原创 2017-04-21 12:43:02 · 297 阅读 · 0 评论 -
BF算法
暴风(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串s的第一个字符与模式串q的第一个字符进行匹配,若相等,则继续比较s的第二个字符和 q的第二个字符;若不相等,则比较s的第二个字符和q的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。#include #include #include #define MAXLEN 100int原创 2017-04-17 22:06:05 · 638 阅读 · 0 评论 -
选猴王-循环链表
#include #include typedef struct linklist //定义链表节点类型{ int data; struct linklist *next;}linklist;int main(void){ int i,n,k,m,total; linklist *head,*p,*s,*q; printf("猴子总数:"); scanf("%d",&n原创 2017-04-04 18:54:13 · 954 阅读 · 0 评论 -
判断回文字符串(栈)
数据结构作业,简单的压栈。接着把出栈元素与字符串元素依次对比,相同则为回文字符串,否则不是。#include #include #include #include typedef struct Node{ char data; struct Node* pNext;}NODE,*PNODE;typedef struct Stack{ PNODE pTop;原创 2017-03-31 14:34:38 · 913 阅读 · 0 评论 -
建立单链表并交换表中任意两个元素
/**功能:建立单链表并交换表中任意两个元素*@time:2017年3月12日15:07:25*/#include #include #include typedef struct node{ int pos; int data; node* next;}*LinkList,*linkNode;LinkList CreateList_H(); //创建链表void原创 2017-03-12 15:08:52 · 814 阅读 · 0 评论 -
[二维数组]-顺时针螺旋打印二维数组
如下图 当我们遇到一个复杂问题时可以用图像帮我们思考在上图中,我们设置二维数组宽度为rows,高度为columns,取左上角坐标为(startX,startY),取左下角的坐标为(endX,endY),可以发现每次循环的开始为(startX,startY),endX和endY可以根据rows和columns来推出,所以我们应该去发现(startX,startY)的规律我们来原创 2017-03-28 12:18:16 · 2372 阅读 · 0 评论 -
求两链表的并集
/**创建两个同类型链表*链表的值不能有相同的,输入以‘#’结束*合并两链表,数据域相等的结点只留一个*/#include #include typedef struct node{ char data; struct node* next;}*Node;Node CreateList(int); //初始化链表bool judge(char ch,Node原创 2017-03-11 13:37:42 · 1075 阅读 · 0 评论 -
运用单链表实现链栈,并实现括号匹配---作业
#include #include #include typedef struct Node{ int data; struct Node* pNext;}NODE,*PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;}STACK,*PSTACK;void init(PSTACK);void push(PS原创 2017-03-19 20:45:38 · 827 阅读 · 0 评论 -
malloc、calloc、realloc的区别
(1)C语言跟内存分配方式从静态储存区域分配内存在程序编译的时候就分配好了,这块内存在整个运行期间都存在。例如全局变量、static变量在栈上创建在执行函数时,函数内部的局部变量都可以在栈上创建,函数执行结束时,这些储存单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率高,但分配的内容容量有限.在堆上分配,亦称动态内存分配程序在运行时用malloc或new申请任意多转载 2017-09-21 15:50:34 · 378 阅读 · 0 评论