![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C-数据结构
文章平均质量分 93
小王同学Top
这个作者很懒,什么都没留下…
展开
-
3.3双端队列的表示与实现
3.3双端队列的表示与实现 双端队列有两个端部,首部和尾部,并且项在集合中保持不变。 双端队不同的地方是添加和删除项是非限制性的。可以在前面或后面添加新项;同样,可以从任一端移除现有项。 代码实现: #include <stdio.h> #include <stdlib.h> #define QUEUESIZE 8 typedef char DataType; typedef struct DQueue { DataType queue[QUEUESIZE]; int原创 2020-12-14 19:49:34 · 221 阅读 · 0 评论 -
3.2链式队列的表示与实现
3.2链式队列的表示与实现 使用链栈和链队进行字符串回文(对称)判断。 代码实现: test.c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef char DataType; //链式堆栈 typedef struct snode { DataType data; struct snode* next; }LSNode; //只有队尾的链式循环队列 typedef str原创 2020-12-13 23:35:32 · 229 阅读 · 1 评论 -
3.1顺序循环队列的表示与实现
3.1顺序队列的表示与实习 顺序队列通常采用一维数组进行存储。其中,连续的存储单元依次存放队列中的元素。同时,使用两个指针分别表示数组中存放的第一个元素和最后一个元素的位置。指向第一个元素的叫队头指针(front),指向最后一个元素的叫队尾指针(rear)。 代码实现:(为了防止假溢出,加tag标志位) test.c #include <stdio.h> #include <stdlib.h> #define QUEUESIZE 10 typedef char Data原创 2020-12-13 23:30:56 · 293 阅读 · 0 评论 -
2.2链栈的表示与实现
2.2链栈的表示与实现 采用链式存储方式的栈称为链栈或者链式栈。设置头结点。并且一般top指向头结点。 代码实现: LinkStack.h #pragma once #include <stdio.h> #include <stdlib.h> typedef char DataType; typedef struct node { DataType data; struct node* next; }LStackNode,*LinkStack; //初始化 voi原创 2020-12-13 23:24:50 · 215 阅读 · 0 评论 -
2.1顺序栈的表示与实现
2.1顺序栈的表示与实现 栈(stack),也称堆栈,是一种特殊的线性表,只允许在一端进行插入和删除操作。栈表允许操作的一端叫栈顶,另一端称栈底。栈顶是动态变化的,它由一个栈顶指针top的变量来指示。当表中没有元素时,称为空栈。 代码实现: SSeqStack.h #pragma once #include <stdio.h> #include <stdlib.h> #define STACKSIZE 100 typedef char DataType; typedef原创 2020-12-13 23:21:09 · 265 阅读 · 0 评论 -
1.5静态链表的表示与实现
1.5静态链表的表示与实现 静态链表可用一维数组来描述,用游标模拟指针。游标的作用就是指示元素的直接后继。这里的游标的数据类型不是动态链表的指针类型,而是整型数字。 代码实现: SLinkList.h #pragma once #include <stdio.h> #include <stdlib.h> #define ListSize 100 typedef int DataType; typedef struct { DataType data; int cur原创 2020-12-13 13:43:39 · 116 阅读 · 0 评论 -
1.4双向链表表示与实现
1.4双向链表 1、双向链表是指链表中每个结点都有两个指针域,一个指向后继结点,一个指向前驱结点。prior和next. 2、双向链表也分带头和不带头,带头操作更加方便。双向链表也有循环结构,称双向循环链表。 3、带头双向循环链表的判空条件为head->prior==head或head->next==head; 代码实现: DLinkList.h #pragma once #include <stdio.h> #include <stdlib.h> typ原创 2020-12-13 13:13:46 · 209 阅读 · 0 评论 -
1.3循环单链表之约瑟夫问题
1.3循环单链表之约瑟夫问题 约瑟夫问题:有n个人,编号为1----n,围成一个圆圈,顺时针转,从第k个人开始报数1,然后报到m的人出列,他的下一个人开始继续从1报数,重复,直到所有人出列。要求n m k自己输入。 代码实现: #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define ListSize 100 typedef int DataType; typedef struct N原创 2020-12-13 13:10:28 · 390 阅读 · 0 评论 -
1.2线性表的链式表示与实现
1.2线性表的链式表示与实现 在顺序表中,由于逻辑上相邻的元素物理位置也相邻,因此它有一个优点:可以随机存取顺序表中的任意一个元素。但同时也有缺点,插入和删除运算需要移动大量的元素,采用顺序存储必须事先分配好内存单元,而事先分配的存储单元大小不一定刚好满足需要。 单链表的存储结构 1、需要存储数据和后继元素的地址信息,这两部分组成的存储结构叫节点(Node)。由于每个节点的指针域只有一个,这样的链表被称为线性链表或单链表。物理上的存储叫链式存储。 2、有时为了操作方便,通常在第一个节点前加一个节点,原创 2020-12-09 22:03:07 · 222 阅读 · 0 评论 -
1.1线性表的顺序表示与实现
1.1线性表的顺序实现 线性表的顺序存储指的是将线性表中的元素存放在一组连续的存储单元中,这样使得在逻辑上是相邻的,物理存储上也是相邻的。采用顺序存储结构的线性表称为顺序表。 顺序表反应了线性表中元素的逻辑关系,只要知道第一个元素的存储地址就能得到线性表中任何一个元素的存储地址。同样已知任何一个元素的存储地址都可以得到其他元素的存储地址。因此线性表中的任何一个元素都可以随机存取,线性表的顺序存储结构是一种随机存取的存储结构。 问题:如果A中的元素在B中出现过,将A中的删除。 解决: 头文件 #原创 2020-12-09 21:55:58 · 335 阅读 · 0 评论