数据结构
cangcun
不断地总结和提高
展开
-
队列的链式存储
//链队列#include "stdio.h"#include "stdlib.h" typedef struct snode{ int data; struct snode* next;}snode,*linkq;typedef struct{ linkq rear,front;}linkqueue;//插入元素 int insertn(linkqueue* q,int...原创 2019-09-02 22:15:23 · 100 阅读 · 0 评论 -
c语言实现栈的链式存储
//栈的链式存储结构#include "stdio.h"#include "stdlib.h" typedef struct snode{ int data; struct snode *next;}*linkstack,snode;//入栈linkstack pushin(linkstack p,int e) { linkstack m; m = (linkstack)...原创 2019-09-02 15:21:16 · 138 阅读 · 0 评论 -
线性表顺序存储之两栈共享内存
目录1.两栈共享内存2.入栈操作3.出栈操作4.打印栈的内容5.主函数1.两栈共享内存背 景:1.两个栈数据结构相同; 2.其中一个栈已经满了,而另一个栈还剩很多存储空间; 3.基于2很容易造成存储空间的浪费,基于1、2可以采用两栈共享同一数组的方式解决上述问题。实现要点:1.定义一...原创 2019-09-02 11:17:52 · 243 阅读 · 0 评论 -
线性表之栈
目录1.什么是栈2.栈的存储结构 顺序存储结构(本节所展示的方式) 链式存储结构3.栈的应用 递归 四则运算表达式4.入栈操作5.出栈操作6.打印栈的内容7.主函数1.什么是栈 栈是限定在表尾进行插入和删除操作的线性表2.栈的存储结构 顺序存储结构(本节所展示的方式) 链式存储结构3.栈的应用 递...原创 2019-09-02 10:31:23 · 105 阅读 · 0 评论 -
C语言链式存储之双向链表
目录1.什么是双向链表2.双向链表的整表创建3.插入结点4.删除结点5.打印双向链表6.主函数1.什么是双向链表 双向链表是在单链表的基础上,为每一个结点加一个前驱即可。typedef struct Snode{ int data; struct Snode *prior; struct Snode *next;}*List,list; 2....原创 2019-08-30 17:06:29 · 289 阅读 · 0 评论 -
C语言链式存储之循环链表
目录1.什么是循环链表2.创建循环链表3.合并循环链表4.打印链表5.主函数1.什么是循环链表 循环链表是以单链表为原型,单链表中头结点和未结点是不能直接关联的,现在循环链表让尾结点直接指向头结点,形成一个圈,实现单向循环。2.创建循环链表要点:<1>创建一个头结点,后面依次添加结点和单链表相同; <2>...原创 2019-08-30 16:03:11 · 305 阅读 · 0 评论 -
C语言链式存储之静态链表
目录1.什么是静态链表2.添加一个新元素3.插入结点4.删除结点5.静态链表的初始化6.打印静态链表7. 查找给定结点的上一个结点的下标8.主函数1.什么是静态链表 用数组来代替指针,描述单链表。定义一个结构体,结构体中包含两个整形变量,第一个整形变量等价于链表中的data域,第二个整形元素等价于单链表中的next指针域,这个变量用cur表示,用来存储下...原创 2019-08-30 14:18:49 · 360 阅读 · 0 评论 -
单链表的C语言实现
目录整表创建头插法尾插法整表删除插入单个节点删除单个节点单链表逆序头插法 Link tcreatelist() { int value,len; Link head = (Link)malloc(sizeof(link));//先创建头结点,头结点的数据域没有值 head->next = NULL; ...原创 2019-08-28 17:56:52 · 262 阅读 · 0 评论 -
c语言实现线性表之顺序存储
目录线性表的定义线性表的存储结构顺序存储(数组的方式)链式存储单链表静态链表循环链表双向链表线性表的定义: 零个或多个数据元素的有限序列,如果有多个元素,第一个元素无前驱,最后一个元素无后继。其它每个元素 有且只有一个前驱,一个后继。线性表中存储的数据类型必须一样。顺序存储的特点:用一段连续的...原创 2019-08-29 15:54:05 · 474 阅读 · 0 评论