数据结构_栈和队列
这篇专栏整理的也都是完整代码
never give-up
代码从入门到放弃
展开
-
3.9
3.9 用两个栈来实现队列,请写出队列基本操作的算法 #include<iostream> #include<stack> #define MaxSize 5 using namespace std; stack<int >a,b; int main() { for(int i=0;i<MaxSize;i++) a.push(i); for(int i=0;i<MaxSize;i++){ b.push(a.top());原创 2021-02-23 16:26:29 · 86 阅读 · 0 评论 -
3.8
3.8 以带头结点的循环链表表示队列,只设一个表尾指针。试编写相应置队列空、入队和出队操作。 #include<iostream> using namespace std; struct LinkQueue { LinkQueue *next; int val; }; struct Node { LinkQueue *rear; }; void EnQueue(Node &q){//入队,别忘了& LinkQueue *L=new LinkQueu原创 2021-02-22 23:14:34 · 82 阅读 · 0 评论 -
3.7
3.7 一维数组a[m]存放循环队列的元素,设置变量num表示当前队列中元素的个数,判断队列的状态为’空’,还是’满’。试给出此循环队列满的条件,并编写入队和出队算法 #include<iostream> #include<queue> #define MaxSize 3 using namespace std; struct SeqQueue { int a[MaxSize];//存放队列元素的数组 int front,rear;//队头和队尾指针 }; void原创 2021-02-21 22:38:49 · 196 阅读 · 0 评论 -
3.6
3.6 一维数组a[m]存储循环队列的元素,若要使这m个分量都得到应用,则另设一辅助标志变量flag判断队列为‘空’还是‘满’,试编写入队和出队算法 #include<iostream> #include<queue> #define MaxSize 3 using namespace std; struct SeqQueue { int a[MaxSize];//存放队列元素的数组 int front,rear;//队头和队尾指针 }; int Judge(SeqQ原创 2021-02-21 21:36:07 · 424 阅读 · 0 评论 -
3.5中缀转后缀简洁代码
3.5 现有中缀表达式E=((A-B)/C+D*(E-F))*G,写出与E等价的后缀表达式 中缀转后缀表达式网上优质代码太少,本人参考了书本,网络资源,总结出了简洁代码,实属不易,也在此谢谢我那些参考的文章。 #include<iostream> #include<stack> using namespace std; stack<char> s; void Tran(string n){ for(int i=0;i<n.size();i++){原创 2021-02-21 19:42:42 · 643 阅读 · 0 评论 -
括号匹配简单模板代码 &&3.4全网能查到的唯一实现代码(C/C++)
#include<iostream> #include<stack> using namespace std; stack<char> s; int Check(string a){ for(int i=0;i<a.size();i++){ if(a[i]==')'){ if(s.size()==0) return 0;//遇到)]}但是栈为空,则报错 if(s.top()=='(') s.po原创 2021-02-20 18:45:03 · 673 阅读 · 0 评论 -
3.3
3.3 设有一维数组stack[StackMaxSize],将其分配给两个栈S1和S2使用。试问如何分配数组空间,使得对任何一个栈,当且仅当数组空间全满时才不能插入?试给出两个栈的出栈入栈算法。 #include<iostream> #define MaxSize 3 using namespace std; struct Stack { int top1,top2; int a[MaxSize]; }; int main() { int n;//n为控制输入的栈原创 2021-02-20 16:18:40 · 268 阅读 · 1 评论 -
3.2
3.2 利用栈实现把十进制整数转换为二进制至十六进制之间的任一进制数并输出的功能 /*我称这题为很经典*/ #include<iostream> #include<stack> //#include<string> using namespace std; stack<char>s;//申请一个栈容器s string Convert(int num,int n){ char a[16]={'0','1','2','3','4','5','6','7',原创 2021-02-20 00:25:33 · 82 阅读 · 0 评论 -
栈和队列章节知识
Catalan列计算可能的出栈序列个数(记住这个公式): 特点:LIFO 顺序栈:顺序存储结构 链栈:链接存储方式//不带头结点的单链表 中缀表达式要考虑算符优先法 要实现中缀表达式求值,必须设置两个栈 将中缀转换为后缀 栈与递归:函数直接调用自己或者间接调用自己,该函数为递归函数,存在明确的递归出口 高级语言中,对函数的调用,系统是通过栈来实现的。一个递归函数的执行过程类似多个函数嵌套调用,因此执行递归函数过程中需要一个递归工作栈。 递归工作栈作用:将递归调用的实参和函数返回地址传递给下一层的递归函数;原创 2021-02-19 22:41:58 · 144 阅读 · 0 评论