数据结构:栈与队列的深入解析
1. 栈的逻辑层面定义
栈是一种抽象数据类型,在逻辑层面上,它是一个有序的同质元素组。元素的添加和移除只能在栈的顶部进行,遵循“后进先出”(LIFO)原则。例如,在一叠衬衫中,若想取出下面的蓝色衬衫,需先移除上面的红色衬衫。
栈的操作主要包括:
- Push :将元素添加到栈顶。
- Pop :移除栈顶元素。
- Top :返回栈顶元素的副本,不移除该元素。
- MakeEmpty :将栈置为空。
- IsEmpty :判断栈是否为空。
- IsFull :判断栈是否已满。
栈的ADT规范如下:
| 操作 | 功能 | 前置条件 | 后置条件 |
| — | — | — | — |
| MakeEmpty | 将栈置为空 | 无 | 栈为空 |
| IsEmpty | 判断栈是否为空 | 栈已初始化 | 函数值为栈是否为空的布尔值 |
| IsFull | 判断栈是否已满 | 栈已初始化 | 函数值为栈是否已满的布尔值 |
| Push(ItemType newItem) | 将新元素添加到栈顶 | 栈已初始化 | 若栈已满,抛出FullStack异常;否则新元素位于栈顶 |
| Pop() | 移除栈顶元素 | 栈已初始化 | 若栈为空,抛出EmptyStack异常;否则栈顶元素被移除 |
超级会员免费看
订阅专栏 解锁全文
1316

被折叠的 条评论
为什么被折叠?



