【数据结构——栈与队列】

本文介绍了数据结构中的栈与队列。栈是一种后进先出的线性表,支持入栈和出栈操作,常用于递归和表达式求值。顺序栈与链栈各有优缺点,根据需求选择使用。队列则遵循先进先出原则,支持入队和出队,可使用数组或链表实现。中缀表达式转后缀表达式和后缀表达式求值是栈的重要应用之一。
摘要由CSDN通过智能技术生成

数据结构——栈与队列

队列是一种受限的线性表结构。栈只支持入栈push()与出栈pop()两种操作。而队列与其相似,仅支持入队enqueue()与出队dequeue()操作。
*[队列操作]:入队:从队列尾部加入数据;出队:从队列头部删除数据。

一、栈

栈是限定仅在表尾(栈顶)进行插入和删除操作的线性表。
栈又称为后进先出(Last In First Out) 的线性表。

  • 我们把允许插入和删除的一端称为栈顶。
  • 另一端称为栈底。
  • 不含任何任何数据元素的栈称为空栈。

1.顺序栈与链栈

(1) 顺序栈
可以使用线性表的顺序存储结构(即数组)实现栈,将之称之为顺序栈。

(2)链栈
可以使用单链表结构实现栈,将之称之为链栈。

(3)顺序栈&链栈的异同

  • A:同【时间复杂度】
    顺序栈和链栈的时间复杂度均为

  • B:异【空间性能】
    a:顺序栈
    顺序栈需要事先确定一个固定的长度(数组长度)。
    可能存在内存空间浪费问题,但它的优势是存取时定位很方便。
    b:链栈
    要求每个元素都要配套一个指向下个结点的指针域。
    增大了内存开销,但好处是栈的长度无限。

因此,如果栈的使用过程中元素变化不可预料,有时很小,有时很大&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值