
栈
徐诚武
小白
展开
-
栈的运用(算数表达式求值的算符优先算法 十以内简单版)
假定运算符有加(+),减(-),乘(*),除(/)),操作数限制为一位数,圆括号看作分界符。中缀表达式 a*b+c a+b*c a+(b*c+d)/e 后缀表达式(RPN) ab*c+ abc*+ abc*d+e/+中缀表达式:设两个栈, 操作数栈(opnd)和运算符栈(optr)按以下规则进行:原创 2016-03-28 20:57:55 · 5895 阅读 · 6 评论 -
栈的运用(中缀表达式转换为后缀表达式,并对后缀表达式求值。)
中缀表达式转换成后缀表达式的基本思想: 顺序扫描中缀表达式: 若读入的是一个运算分量,则输出; 若读入的是一个左括号,则入栈,栈中左括号的优先级被视为比任何操作符都低。 若读入的是一个操作符(如 + 或 -),其级别比栈顶元素级别高,则入栈,否则,栈顶元素出栈,输出。 若读入的是右括号,栈中元素出栈,输出,直到碰到左括号,左括号出栈,但不输原创 2016-03-31 10:13:25 · 3163 阅读 · 0 评论 -
数据结构3
栈和队列 1、设计算法将中缀表达式转换为后缀表达式,并对后缀表达式求值。 2、请利用两个栈S1和S2来模拟一个队列。已知栈的三个操作定义如下:PUSH(ST,x),元素x入栈ST,POP(ST,X),ST栈顶元素出栈并赋给变量x;Sempty(ST),判断ST栈是否为空。那么利用栈的操作来实现该队列的三个操作:EnQueue,插入一个元素入队;DeQueue,删除一个元素出队;QueueEmpt原创 2016-04-02 11:55:25 · 453 阅读 · 0 评论 -
链栈基本代码
初学栈,用链表创建栈的基本代码:#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> using namespace std; typedef struct node { int data; struct node *next; } Node,*LinkList; LinkList Cr原创 2016-03-23 20:10:22 · 1552 阅读 · 0 评论 -
顺序栈
我感觉对顺序栈还没理解#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #define size 100 using namespace std;struct node { int data[size]; int top; }s; int StackEmpty(int t)//判断栈原创 2016-03-23 20:45:00 · 264 阅读 · 0 评论 -
栈的运用(十进制转换八进制,括号匹配问题)
十进制转换八进制:#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> using namespace std; typedef struct node { int data; struct node *next; } Node,*LinkList; LinkList Createzha原创 2016-03-24 20:16:41 · 870 阅读 · 0 评论