第三章:栈和队列
文章平均质量分 79
kong_xz
这个作者很懒,什么都没留下…
展开
-
栈
一、栈的定义 栈是一种只能在一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。栈顶的当前位置是动态的,栈顶的当前位置由一个称为栈顶指针的位置指示器指示。当栈中没有数据元素时,称为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。栈的主要特点是“后进先出”,即后进栈的元素先出栈。栈也称为后进先出表。栈的几种基本运算如下: Init...原创 2018-03-03 16:54:46 · 521 阅读 · 0 评论 -
栈的应用
一、表达式求值表达式求值问题是:用户输入一个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法数学表达式,计算该表达式的运算结果。为了方便,假设该表达式都是合法的数学表达式,例如,exp="1+2*(4+12)";在设计相关算法中用到栈,这里采用顺序栈存储结构。 例如: Exp = a*b + (c - d / e) *f前缀式: + * a b * - c / d e f中缀式: ...原创 2018-03-04 17:53:45 · 415 阅读 · 0 评论 -
队列
一、 队列的定义 队列简称队,它也是一种运算受限的线性表,其限制仅允许在表的一端进行插入,而在表的另一端进行删除。把进行插入的一端称做队尾(rear),进行删除的一端称做队首或队头(front)。向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素;从队列中删除元素称为出队或离队,元素出队后,其后继元素就成为队首元素。 由于队列的插入和删除操作分别是在各自的一端进行的,每个元素必然按...原创 2018-03-04 18:07:52 · 932 阅读 · 0 评论 -
队列的应用
一、采用队列求解迷宫问题使用一个队列qu记录走过的方块,该队列的结构如下: typedef struct { int i,j; //方块的位置 int pre; //本路径中上一方块在队列中的下标} Box; //方块类型typedef struct{ Box data[MaxSize]; int front,rear; //队头指针和队尾指针}...原创 2018-03-04 18:15:35 · 470 阅读 · 0 评论