![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
顺序栈
文章平均质量分 52
小心眼儿猫
这个作者很懒,什么都没留下…
展开
-
C语言实现顺序栈
栈:是一种特殊的线性表,我们只能对栈 的固定的一端进行插入和删除元素操作。这固定的一端被称之为栈顶,另外一端就叫做栈底。如果一个栈中没有任何元素就将其称为空栈。 特性:先进后出(后进先出) seqstack.h文件#pragma once#include<stddef.h>typedef char seqStackType;typedef struct se...原创 2018-04-07 23:10:50 · 6134 阅读 · 1 评论 -
实现一个栈:取栈中的最小值的时间复杂度为O(1)
思路:每次入栈前先找到最小的元素(每次有新元素入栈时就将新的元素假设为最小的元素min)(情况1:入栈时,栈内没有任何元素,即是一个空栈。这时候先将要入栈的元素入栈,再紧接着将最小的元素入栈;*情况2*:入栈时栈内已经有元素了,这时候将最小值min与栈顶元素相比较,如果栈顶元素比最小值还要小,则将其赋值给最小值min(min永远是最小的值)。然后先将要入栈的元素入栈再紧接着将最小值入栈。)如此一来...原创 2018-04-15 15:27:56 · 1753 阅读 · 0 评论 -
通过两个栈实现一个队列(C语言)
思路:如下图,我们可以定义两个栈,其中一个input用于实现队列的入队列的操作(就是input栈的入栈),另外一个output用于实现出队列和取队首元素的操作(就是output栈的出栈和取栈顶元素)。 当我们要出队列或者去队首元素时时,因为出队列和取队首元素要从output栈出,所以要先将input中的元素移到output中(而且谁最后入栈,就先把谁移到output中,这样一来,后入栈(后入队原创 2018-04-16 00:33:34 · 3091 阅读 · 0 评论 -
通过两个队列实现一个栈(C语言)
stackBy2Queue.h文件#pragma once#define max_size 1000typedef char DataType;typedef struct Queue{ DataType data[max_size]; int head; int tail; //队列中有效元素个数 int size;}Queue;...原创 2018-04-16 23:42:01 · 9585 阅读 · 1 评论 -
通过一个数组实现两个栈(C语言)
通过一个数组实现的两个栈也叫作共享栈。我们可以将一个数组一分为二,供两个栈使用。 也有另外一种虽然也是讲一个数组一分为二供两个栈使用,但在具体实现上有所不同。 牢记栈1的区间是[0,top1)的左闭右开区间,栈2的区间是[top2,max_size)的左闭右开区间。其中的top1位置并不存放栈1的值,而max_size是数组的边界值也取不到。 正式由于两个栈的区间的取值,所以当top1与...原创 2018-04-17 20:06:01 · 2443 阅读 · 0 评论 -
判断元素出栈入栈顺序的合法性(C语言)
题意:假设有字符串1**abcde**和字符串2**bceda**,试判断是否能以字符串1的入栈顺序得到字符串2的出栈顺序。思路: 步骤1:先将字符串1的第一个字符入栈: 步骤2:将该元素与字符串2的下一个元素进行比较 步骤3: a):如果相等,就将该元素出栈并且将字符串1的下一个字符入栈,与字符串2的下一个字符进行比较。 b):如果不相等,继续将字符串1的...原创 2018-04-17 20:43:50 · 5935 阅读 · 0 评论 -
回溯法求解简单迷宫(C语言)
前两天学习了栈和队列的相关知识,今天来看一下如何用栈来走出迷宫。 先来一个迷宫:0表示墙(不能走),1表示路(能走)为便于观察我将这里可走的路用红色标记一下 前面收到我们要使用栈的相关知识来走出这个迷宫,下面就正式开始来说一说怎么解决迷宫问题。 方法一:使用函数本身的栈。我们都知道调用一个函数时,该函数都会形成自己的函数调用栈,当函数调用结束返回以后,该栈结构就会随之消失,而这里的调用栈的原创 2018-04-21 11:19:07 · 4149 阅读 · 0 评论 -
多通路带环和不带环迷宫求最短路径(C语言)
求解了简单迷宫,接下来我们来看一看多通路的带环和不带环的迷宫求最短路径的问题。 问题一:不带环的多通路迷宫求最短路径 思路: 1、给定一个点,判断该点是否能落脚,不能落脚直接返回 2、能落脚就将这个点标记,并且入栈cur_path,该栈中保存着我们走过的路径 3、判断这个点是否为出口,是出口说明找到了一条路 4、此时cur_path栈中保存着我们走过的这条路,将cur...原创 2018-04-21 22:20:55 · 488 阅读 · 0 评论