数据结构复习之栈和队列(正在整理中...)感谢天勤考研..

栈(先进后出)

一、逻辑结构

栈到底是什么?
在这里插入图片描述
栈是一种只能在一端进行插入或删除操作的线性表

二、存储结构

顺序栈

在这里插入图片描述
++top 的意思是 先让top 自增1
在这里插入图片描述
top-- 先取top的值 再减1
注意一个点:
此时3和4 还在数组中,但是却不在栈中了(栈中元素访问【0,top】)

链栈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:顺序栈会出现栈空和栈满的状态,但是链式会栈空,但是只要由足够的内存,栈就不会满

队列(先进先出)

一、逻辑结构

队列是一种插入元素只能在一端(队尾)能进,删除元素只能在另一端(队头)进行的线性表。

一、存储结构

顺序队(数组和指示变量)

在这里插入图片描述
在这里插入图片描述

容易发生假溢出
在这里插入图片描述
利用取余的方法实现“圆环”
队空状态:front==rear

队满状态:front==(rear+1)%maxSize为真

链队

在内存足够的情况下,它连队满都不会有呢
在这里插入图片描述
当front->next==null 队空

但是很多考题都会把front和rear放在一个结构体中(如下图)
很显然当front==null的时候 队空
在这里插入图片描述

栈和队列的考点总结

输出序列

考试不要掉入陷阱当中
谁说不能一边入栈一边出栈呢
在这里插入图片描述

经典题型(分类讨论)
在这里插入图片描述
标黄色的 不可能实现
告诉我们 最后一个入栈的元素 第一个出栈,出栈的顺序就是固定的,不能乱来
若1、2、3 则无3、1、2

课外拓展
Catalan number(卡特兰数)

表达式转换问题

三种表达式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

中缀表达式转后缀
在这里插入图片描述
在这里插入图片描述
注意点:
为什么可以丢掉括号:因为每一个中缀表达式 只有唯一的后缀表达式与之对应
在这里插入图片描述
在这里插入图片描述

用栈实现表达式转换问题

中缀转后缀

在这里插入图片描述
小于等于(要入栈的那个运算符与栈顶的比较)则出栈 大于入栈
遇到左括号 所有扫描到的运算符直接全部入栈
遇到右括号的时候 执行一系列的出栈操作(出栈的括号直接扔掉)
在这里插入图片描述

中缀转前缀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值