数据结构--栈与队列

定义

线性表 是具有相同数据类型的 n n≥0 )个数据元素的有限 序列,其中 n 为表长,当 n = 0 时线
性表是一个空表。若用 L 命名线性表,则其一般表示为
L = ( a 1 , a 2 , … , a i , a i +1 , … , a n )
栈( Stack 是只允许在一端进行插入或删除操作的 线性表
队列( Queue 是只允许在一端进行插入,在另一端删除的 线性表

基本操作

栈:

InitStack(&S) 初始化 栈。构造一个空栈 S 分配内存空间
DestroyStack(&S) 销毁 栈。销毁并 释放 S 所占用的 内存空间
Push(&S,x) 进栈 ,若栈 S 未满,则将 x 加入使之成为新栈顶。
Pop(&S,&x) 出栈 ,若栈 S 非空,则弹出栈顶元素,并用 x 返回。
GetTop(S, &x) 读栈顶元素 。若栈 S 非空,则用 x 返回栈顶元素
其他常用操作:
StackEmpty(S) :判断一个栈 S 是否为空。若 S 为空,则返回 true ,否则返回 false
队列:
InitQueue(&Q) 初始化 队列,构造一个空队列 Q
DestroyQueue(&Q) 销毁 队列。销毁并 释放 队列 Q 所占用的 内存空间
EnQueue(&Q,x) 入队 ,若队列 Q 未满,将 x 加入,使之成为新的队尾。
DeQueue(&Q,&x) 出队 ,若队列 Q 非空,删除队头元素,并用 x 返回。
GetHead(Q,&x) 读队头元素 ,若队列 Q 非空,则将队头元素赋值给 x
其他常用操作:
QueueEmpty(Q) :判队列空,若队列 Q 为空返回 true ,否则返回 false

中缀表达式转后缀表达式

中缀转后缀的手算方法:
① 确定中缀表达式中 各个运算符的运算顺序
② 选择下一个运算符,按照「左操作数 右操作数 运算符」的方式组合成一个新的操作数
③ 如果还有运算符没被处理,就继续 ②

((15 ÷ (7 − (1 + 1))) × 3) − (2 + (1 + 1))  中缀表达式

     ③         ②      ①       ④     ⑦    ⑥    ⑤

15 7 1 1 + - ÷  3  ×  2 1 1  + + -     后缀表达式

               ① ② ③   ④            ⑤⑥ ⑦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值