栈和队列总结

输出合法性

关键:一个结点出栈后,比它之前入栈的结点而且在它之后出栈的,出栈顺序和入栈顺序相反

栈的存储

链式存储,一般采用带头结点的头插法

顺序存储,需要注意栈顶指针的两种方式

队列的存储结构

需要有两个指针,指向队头和队尾

顺序存储:为了防止假溢出,需要每次入队出队进行Mod操作

为了区分是队空还是队满,1,设置size变量,每次入队出队都需要进行修改;2,牺牲一个空间不进行存储,如果队尾指针的下一个是队头则说明队满

队列的实际应用
  1. 缓冲区
  2. 对树的层序遍历
栈的实际应用

函数调用压栈信息

表达式求值问题

中缀转后缀执行左优先的原则,如果有相同级别的算法,优先执行左边部分

手算方法:从前往后扫描到第一个操作符,然后运算前面两个数等到新的数据,然后再不断执行之前的步骤

注意左右操作数的顺序是规定的不能乱改

先弹出栈顶元素的是右操作数

中缀转前缀需要执行右优先的原则

具体步骤

  1. 因为中缀还是后缀,操作数的相对位置都是不变的
  2. 如果遇到操作数直接输出
  3. 如果遇到运算符,如果栈空,则入栈;如果栈非空,需要出栈那些比它优先级还高或者相等的操作数
  4. 如果遇到(需要遇到右括号才能出栈操作
实现前缀表达式的流程
  1. 从右往左扫描每一个元素,如果是符号则弹栈操作,先出栈的是左操作数
  2. 如果是操作数则入栈

后缀表达式先出栈的是右操作数

特殊矩阵的压缩存储

对称矩阵:

三角矩阵:需要多一个数组量来存放常量

稀疏矩阵:三元组

十字链表法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值