数据结构&算法
常见数据结构,C语言的实践篇
God_bless_TYY
将来的我一定会感激现在拼命的自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
静态顺序表
静态顺序表要求数据的放入是连续的,而数组是可以往任一位置放入的,所以这里是有区别的。 在此我们用数组来实现静态顺序表的结构 #define MAX 50 #define DataType int typedef struct SeqList { //用来存放数据的空间 DataType arr[MAX]; //用来计算顺序表中有效元素的个数 int size; }SeqList; ...原创 2018-08-22 16:46:11 · 687 阅读 · 1 评论 -
动态顺序表
动态顺序表将顺序表进行动态存储 在这里我们在堆上创建一段空间(堆上的空间便于扩充,因为堆上的空间是我们自己进行动态管理的) typedef int DataType; typedef struct SeqListDynamic { DataType *arr;//指向堆上那段空间的指针 int capicity;//总容量大小 int size;//有效数据个数 }SeqListD;...原创 2018-08-22 17:10:51 · 376 阅读 · 0 评论 -
不带头不循环单链表
单链表的操作比较简单灵活,存放在地址任意的存储单元中 单链表是用每一个结点存放一个数据,然后将所有的结点连接起来 当然,每个结点的位置都是随机的,并不会连续 每个结点也是在堆上申请的 //一个结点中包含数据和指向下一个结点的指针 typedef struct sListNode { DataType data; struct sListNode *pNext; }sListNode;...原创 2018-08-22 17:53:26 · 336 阅读 · 0 评论 -
带头循环双链表
带头循环双链表,顾名思义“带头”就是说你能知道头结点的位置,“循环”就是说这个链表是循环的,“双链表”就是说这个链表除了有一个指针指向下一个结点还有一个指针指向前一个结点 typedef int DataType; typedef struct dList{ DataType data; struct dList *pPrev; struct dList *pNext; }dList;...原创 2018-08-22 18:45:52 · 324 阅读 · 0 评论 -
栈
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入删除操作的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈 栈最大的特点就是:先进后出,后进先出 栈可分为顺序栈和链式栈 1)顺序栈所有的操作时间复杂度都是O(1) 2)链式栈就不一定了得看你的栈顶位于链表的头还是尾(一般建议将栈顶设计在链表头的位置,这样入栈出栈操作都是O(1)。否则入栈是O(1)出栈是O...原创 2018-08-22 19:18:11 · 2310 阅读 · 3 评论 -
队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表 进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列) 队列最大的特点就是:先进先出,后进后出 队列可分为顺序队列、循环队列、链式队列 1)顺序队列放在线性表中,有两种情况: 队头不动,出队列时队头后的所有元素向前移动(缺陷:出队搬移数据会比较繁琐) 对头移动,出队时队头向后移动一个位置(缺陷...原创 2018-08-22 20:13:35 · 340 阅读 · 0 评论
分享