9.8作业

笔记:

栈(堆栈)是一种**先进后出(First In Last Out,FILO)**的线性数据结构,操作主要在一端(栈顶)进行,常见操作有入栈(push,元素进栈顶)、出栈(pop,栈顶元素出栈)、查看栈顶元素(peek)等。比如叠盘子,先放的在最下面,最后才能取到;后放的在最上面,最先能取到,这就是栈的“先进后出”特性的直观体现。

栈的主要特点:
•后进先出,即后进栈的元素先出栈。
•每次进栈的元素都作为新栈顶元素,每次出栈的元素只能是当前栈顶元素。
•栈也称为后进先出表或者先进后出表。

队列(queue)是一种只能在不同端进行插入或删除操作的线性表。 进行插入的一端称做队尾(
rear),进行删除的一端称做队头或队首 (front)。
队列的插入操作通常称为进队或入队(push),队列的删除操作通常 称为出队或离队(pop)。

队列的主要特点:
先进先出,即先进队的元素先出队。
每次进队的元素作为新队尾元素,每次出队的元素只能是队头的 元素。
队列也称为先进先出表。

1047

150

1. 初始化

创建一个空栈,用于存储操作数。                                                                                                      2. 遍历逆波兰表达式

对逆波兰表达式中的每个元素(token)进行处理:

如果是操作数:

将其转换为对应的数值(题目中逆波兰表达式的操作数都是整数),然后压入栈中。比如遇到元素  "5"  ,将其转换为整数  5  后压入栈。

如果是运算符:                                                                                                                               从栈中依次弹出两个操作数,注意弹出的顺序是先弹出的为右操作数,后弹出的为左操作数。例如,栈中依次存储了  2  和  3  ,弹出时先弹出  3  作为右操作数,再弹出  2  作为左操作数 。     根据运算符进行相应的运算,比如遇到  "*"  运算符,就计算  左操作数 * 右操作数  ,得到运算结果。                                                                                                                                                 将运算结果重新压入栈中,为后续可能的运算做准备。

3. 遍历结束后                                                                                                                                     遍历完整个逆波兰表达式后,栈中应该只剩下一个元素,这个元素就是整个逆波兰表达式的计算结果,将其返回即可。                                                                                                                           复杂度分析                                                                                                                                         时间复杂度:需要遍历逆波兰表达式一次,时间复杂度为 O(n) ,其中 n 是逆波兰表达式中元素 的个数。                                                                                                                                                 空间复杂度:在最坏情况下,栈中会存储所有的操作数,即空间复杂度为 O(n) 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值