![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构__栈和队列
文章平均质量分 79
Cynical丶Gary
我们仰望着同一片天空却看着不同的地方
展开
-
C_栈的应用----迷宫求解
迷宫的描述:用一个二维数组表示一个迷宫,这个二维数组的每一个元素的上下左右以及对角线上的四个方向,这总共加起来是八个方向,其中数字0表示可以通过,数字1表示此处不通,判断给定的一个迷宫是否有出路,有出路的话,求解出走出的路线。用栈解决好处:从入口出发,顺某一方向向前搜索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续搜索,直至所有可能的通路都搜索到位置。往原创 2017-07-29 15:26:14 · 1014 阅读 · 0 评论 -
C_栈的应用----行编辑程序
一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编译程序中,“每接受一个字符即存入用户数据区”的做法显然不是恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现的时候可以及时改正。例如,当用户刚刚键入的一个字符是错误的时候,可以补进一个退格原创 2017-07-27 11:46:22 · 4264 阅读 · 1 评论 -
C_栈的应用----括号匹配的检验
假设表达式中允许包含三种括号:圆括号和方括号和大括号,其嵌套的顺序随意,即( [ ] ( ) )或者[ ( [ ] ) ]为正确格式,[(])或(()]均为不正确的格式,检验括号是否匹配的方法可用"期待的破却程度"来描述。下面来对括号是否匹配来进行检验对于检验括号是否匹配可以对其进行进栈和出栈来处理,遇到' ( '、' [ '、‘ { ’时对其进栈,遇到')'、‘]’、‘}’对其出栈,在算原创 2017-07-27 11:03:15 · 819 阅读 · 0 评论 -
C_栈的应用----数制转换
编制一个满足下列要求的程序:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。由于上述计算过程是低位到高位顺序产生八进制数的各个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算过程相反。十进制的150转换为八进制用150对8求余得到6压入栈中,此时栈中只有一个元素6用(150/8)=18对8求余得到2压入栈中,此时栈中有两个元素 6 2用(18/原创 2017-07-27 00:03:19 · 1499 阅读 · 0 评论 -
C_栈和队列(ADT)-栈的表示和实现
基本操作的实现:栈的构造,判空,插入,删除,清空,销毁,打印栈的定义:typedef struct{ ElemType *base; //栈底指针 ElemType *top; //栈顶指针 int stacksize; }SqStack;栈的基本操作:/*操作构造一个空栈S。*/InitStack(&S);/*初始条件:栈S已存在。*//*操作原创 2017-07-16 21:01:45 · 787 阅读 · 0 评论 -
C_栈和队列(ADT)-队列的非循环(带头指针)顺序表示和实现
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。顺序队列一次性要分配大量保证够用的空间,效率较高,因为是基于数组的,长度也是固定的。可以实现变长,但是一般代价较高。队列的数据元素原创 2017-08-08 12:03:42 · 409 阅读 · 0 评论 -
C_栈和队列(ADT)-队列的非循环(无头指针)顺序表示和实现
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。顺序队列一次性要分配大量保证够用的空间,效率较高,因为是基于数组的,长度也是固定的。可以实现变长,但是一般代价较高。队列的数据元素原创 2017-08-07 13:01:56 · 592 阅读 · 0 评论 -
C_栈和队列----stack堆栈容器
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行原创 2017-07-19 17:18:17 · 337 阅读 · 0 评论 -
C_栈和队列----queue队列容器
队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列.队列(queue) 先进先出的值的排列 queue类是为程序员提供了一个队列的功能的容器适配器,具体而言,一个FIFO(原创 2017-07-19 11:42:59 · 700 阅读 · 0 评论 -
C_线性表----duque双端队列容器
deque 即双端队列。(deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列是限定插入和删除操作在表的两端进行的线性表。这两端分别称做端点1和端点2。也可像栈一样,可以用一个铁道转轨网络来比喻双端队列。在实际使用中,还可以有输出受限的双端队列(即一个端点允许插入和删除原创 2017-07-30 22:36:09 · 574 阅读 · 0 评论 -
C_栈和队列(ADT)-队列的链式表示和实现
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有原创 2017-07-19 09:53:03 · 563 阅读 · 0 评论