栈(stack)

一个仅在一端访问的线性集合,这端叫做top(栈顶)。

遵循后进先出的协议(LIFO),即最后加入栈的数据会最先被取出。

push----下推数据到栈

pop----从栈顶取出最后一个被推进来的数据

栈的应用:

n 中缀表达式到后缀表达式的转换,以及对后缀表达式的求值

n 回溯算法

n 方法调用

n 文本编辑器中的撤销功能

n web浏览器的链接历史信息的保留

中缀表达式到后缀表达式的转换:

n 从左至右读取表达式

n 若读取的是操作数,则添加到后缀表达式中

n 若读取的是运算符:

u 如果运算符为"(",则直接推入栈中

u 如果运算符为")",则取出栈中的右运算符,添加到后缀表达式中,直到取出左括号为止。

u 如果运算符为非括号运算符,则与栈顶的运算符做比较,如果比栈顶运算符优先级高或相等,则直接推入栈,否则取出栈中运算符,添加到后缀表达式中。

n 当表达式读取完成,栈中还有运算符时,则依序取出栈中运算符,并分别追到后缀表达式中,直到栈为空。

后缀表达式的求值:

n 从左至右读取表达式:

u 若读取的是操作数,则将其推入栈中

u 若是运算符,则从栈中取出两个操作数进行计算,并将结果推入栈中。

n 重复以上步骤,直到表达式读取完毕。

队列:

线性集合,只允许在表的一端进行插入,即队尾(rear),删除则在另一端,即队头(front)。支持先进先出(FIFO)。

队列应用:

n CPU访问

n 磁盘访问

n 打印机访问


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值