栈
栈
cool-wangtongzhou
keep
展开
-
如何理解记忆栈的GetTop函数
①首先要写函数的类型,之前的文章中就谈到了,一般考虑void和bool型,因为顺序栈要判断栈顶指针是否为-1,链式栈要判断头指针是否指空所以写出bool GetTop(SqStack*s,ElemType &e){}注意这里的s不需要&,因为这里只需要将e的值返回即可②写判断语句顺序栈{ if(s->top==-1) return false; 语句; return true;}链式栈{ if(s->next==原创 2021-04-17 20:56:23 · 5072 阅读 · 0 评论 -
迷宫问题栈求解代码
#include<iostream>using namespace std;const int M = 8, N = 8;int mg[M + 2][N + 2] = { {1,1,1,1,1,1,1,1,1,1},{1,0,0,1,0,0,0,1,0,1}, {1,0,0,1,0,0,0,1,0,1},{1,0,0,0,0,1,1,0,0,1}, {1,0,1,1,1,0,0,0,0,1},{1,0,0,0,1,0,0,0,原创 2021-05-07 17:42:02 · 103 阅读 · 0 评论 -
迷宫问题超详解(栈实现)
我给的建议是,如果你不是很理解这个问题的话,或者完全不懂,那么请进行默读或者朗读,并且边读边想这里我在网上找了一个视频,有基本思路的讲解,看完可以看以下 的代码讲解迷宫问题链接我们将问题分块解释#include<iostream>const int M = 8, N = 8;const int Maxsize = 200;using namespace std;int mg[M + 2][N + 2] ={ {1,1,1,1,1,1,1,1,1,1},{1,0,0,1,0,原创 2021-04-21 08:33:13 · 10060 阅读 · 4 评论 -
如何将栈中的元素输出
首先需要写一个出栈函数,得到栈顶的值,才能将其输出bool Pop(SqStack*& s, ElemType& e){ if (s->top == -1) return false; e = s->data[s->top]; s->top--; return true;}注意:(1)这个出栈函数是bool型的原因:①当栈顶指针不断下降时,要在栈为空时停止下降,因此需要进行判断(真假),所以用bool②不用到判断时才用void,如果原创 2021-04-16 16:14:46 · 13945 阅读 · 0 评论 -
将一个栈的数据转移到另一个栈(递归实现)
void TranStack(SqStack*& s1, SqStack*& s2){ ElemType e; if (!StackEmpty(s1)) { Pop(s1, e); TranStack(s1, s2); Push(s2,e); } }这里if的括号中也可以写成s->top!=-1,一个意思的,只不过上面是引用了一个函数原创 2021-04-16 12:08:28 · 1662 阅读 · 2 评论