
数据结构
C语言这么神奇的吗
就是一个瓜皮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单链表解析Ⅰ
对链表某个节点的操作除第一个节点外,都需要找到该节点的前驱节点,这是关键。1.不带头结点单链表: ①定义typedef char ListData;typedef struct node{ ListData data; struct node * link;}ListNode;typedef ListNode * LinkList;LinkList first; //定义头原创 2017-08-14 18:56:58 · 357 阅读 · 0 评论 -
链栈
栈的另一种实现方法,链表。(不存在栈满上溢的情况) 1.栈的链式存储结构:typedef struct linknode{ ElemType data; struct linknode * next; }LiStack; 2.链栈四要素: ①栈空条件s->next = NULL;②进栈操作 头插法–将包含e的节点插入到头节点之后 尾插法也可实现,但是另需要一个指针指原创 2017-08-22 20:02:20 · 1915 阅读 · 0 评论 -
顺序栈
一、定义:栈是一种只能在一段进行插入或删除的线性表,遵循FILO原则(先进后出)。 1.表中允许插入和删除的一端称为栈顶 栈顶的当前位置是动态的。 栈顶的当前位置由一个位置指示器指示。 2.表的另一端称为栈底。 3.栈的操作 插入操作:称为入栈或者压栈。 删除操作:称为出栈或者退栈。 4.当栈中没有数据元素时称为空栈。 二、栈的顺序存储结构type原创 2017-08-22 15:14:28 · 716 阅读 · 0 评论 -
链式队列
以单链表的存储方式构建队列,动态分配内存空间,不用考虑上溢。typedef struct node{ ElemType data; node * next;} ListNode;typedef struct{ ListNode * front; ListNode * rear;}LiQueue; 四要素: 空队列:rear = NULL 满队列:不考虑原创 2017-08-24 09:01:00 · 435 阅读 · 0 评论 -
环形队列
为解决顺序队列存在的严重问题,伟大的先驱们又发明了一种可以循环使用的队列以解决内存空间浪费的问题–环形队列。环形队列的物理存储结构与顺序队列并没有什么差别,但是逻辑存储结构的改变使之截然不同。 充分地使用数组中的存储空间,把数组的前端和后端连接起来,形成一个环形的顺序表,即把存储队列元素的表从逻辑上看成一个环。typedef struct{ ElemType data[MaxSize];原创 2017-08-23 21:24:07 · 2250 阅读 · 1 评论 -
顺序队列
队列也是一种运算受限的线性表,只允许在表的一端进行插入,另一端进行删除操作。进行插入的一端称作队尾,进行删除的一端称作队首或队头。队列的操作: 向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素。 从队列中删除元素称为出队或离队,元素出队后,其后继元素称为队首元素。 特点:先进先出(FIFO)队列的存储结构 队列描述: data 数据元素:具有同一类型 ElemType,上限原创 2017-08-23 19:59:43 · 667 阅读 · 0 评论 -
栈的应用Ⅱ--迷宫问题
利用栈解决迷宫问题如图,定义起点和终点,求出从起点到终点的路径。 首先迷宫分为两种格子,一种是空白格子视为可移动格子。一种黑色格子,视为墙壁,不可移动。接着考虑如何表示移动的方向,可以使用标识符标记移动的方向,这里可以使用0,1,2,3代表上右下左四个方向。走过的格子也要标记为已考察过。考察到终点视为成功。过程: ①将起点坐标入栈, ②根据栈顶元素0,1,2,3(上右下左)四个方向进行遍历原创 2017-08-22 21:06:59 · 477 阅读 · 0 评论 -
单链表解析Ⅲ
定义:typedef char ListData;typedef struct node{ListData data;struct node * link;}ListNode;typedef ListNode * LinkList;LinkList first; //定义头指针LinkList last; //定义尾指针1.清空链表//删除除头结点外所有节点void EmptyL原创 2017-08-14 20:13:23 · 259 阅读 · 0 评论 -
单链表解析Ⅱ
定义: typedef char ListData;typedef struct node{ListData data;struct node * link;}ListNode;typedef ListNode * LinkList;LinkList first; //定义头指针LinkList last; //定义尾指针1.前插法建立单链表 LinkList creat原创 2017-08-14 19:42:23 · 313 阅读 · 0 评论 -
栈的应用Ⅰ--后缀表达式 括号匹配
一、后缀表达式 在我们日常生活中所见表达式都是中缀表达式,如 “5*(3+7)-4/2”,这中表达式符合我们的思维逻辑,可读性强,但是不利于计算机的解析。由波兰逻辑学家J.Lukasiewicz发明出后缀表达式,比如上式转变为后缀表达式”5 3 7 + * 4 2 / -“,这种人类难以适应的表达顺序,计算机却很受用。1.计算机应用后缀表达式的过程: 如后缀表达式:”5 3 7 + * 4原创 2017-08-22 17:16:59 · 1154 阅读 · 0 评论