王道408---DS---线性表、栈、队列与数组

错题2.2

img
1、题目中提到在第i个位置一般是指在下表为i的位置
2、线性表元素的序号是从1开始,而在第n+1个位置插入相当于在表尾追加。

静态链表

img
img
树的双亲表示法就是使用了这种思想吧

卡特兰数

1n+1C2nn

栈的数学性质:n个不同元素进栈,出栈元素不同排列的个数为卡特兰数

栈的初始化与判空判满操作

image-20231006151231380

栈空判断的条件就是 S.top = = -1,栈满的条件是S.top==MaxSize-1

共享栈

image-20231006151035009

共享栈的判空: 对于top0,top0=-1时,0号栈空,top1=MaxSize时1号栈空

判满: top1-top0 = 1

队列的判空判满方法

image-20231006151904086

双端队列

img
img
注意,对于通向的 "插入" "删除" 类似于栈,而对于不同向的"插入" "删除"才类似于队列

栈的应用

中缀表达式快速转逆波兰式(后缀表达)---方法一

最原始的方法

img

只看上面这一种解法难免会有些疑惑

推荐看下面这个

https://zq99299.github.io/dsalg-tutorial/dsalg-java-hsp/05/05.html

需要注意的是

1、当遇到同优先级的符号也会从栈里弹出,比如 + -

2、运算数据是遇到一个就放入栈里,并且不会弹出,弹出的只有运算符号,准确来说,运算数据就不用放在栈里。

3、如果最后还有两个运算符,则按栈依此弹出
如:
a+bc+(de+f)g
最后变为: abc
+def+g+

中缀表达转后缀表达---方法二

image-20231010090340740

另外记录中缀表达快速转前缀/后缀表达
https://www.cnblogs.com/lordtianqiyi/p/17606338.html

中缀表达转后缀表达---方法三

image-20231010090437586

直接根据中序生成树,再进行后序遍历

这个方法看似比较麻烦,实际上一试就会发现相当easy!!!

很推荐第三种方法,因为前两种可能一不小心就失误了,尤其是第一种

稀疏矩阵

稀疏矩阵的存放一般采用三元组

image-20231006152820691

难题3.1

p64-T7

image-20231006150801155

注意这里是只有指针,没有结点


__EOF__

本文作者_TLSN
本文链接https://www.cnblogs.com/lordtianqiyi/p/17760057.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TLSN  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示