【文件属性】:
文件名称:栈操作实例-web服务稳定性测试 负载测试 可靠性测试 测试报告
文件大小:10.35MB
文件格式:PDF
更新时间:2021-07-10 17:12:25
数据结构 邓俊辉 清华大学 mooc学堂在线 教材
图4.1 一摞椅子即是一个栈
图4.2 栈操作
如图4.1所示,数把椅子叠成一摞即可视作一个栈。
为维持这一放置形式,对该栈可行的操作只能在其顶部
实施:新的椅子只能叠放到最顶端;反过来,只有最顶
端的椅子才能被取走。因此比照这类实例,栈中可操作
的一端更多地称作栈顶(stack top),而另一无法直
接操作的盲端则更多地称作栈底(stack bottom)。
作为抽象数据类型,栈所支持的操作接口可归纳为
表4.1。其中除了引用栈顶的top()等操作外,如图4.2
所示,最常用的插入与删除操作分别称作入栈(push)
和出栈(pop)。
表4.1 栈ADT支持癿操作接口
操作接口 功 能
size() 报告栈癿觃模
empty() 刞断栈是否为空
push(e) 将e揑至栈顶
pop() 初除栈顶对象
top() 引用栈顶对象
后进先出
由以上关于栈操作位置的约定和限制不难看出,栈中元素接受操作的次序必然始终遵循所谓
“后进先出”(last-in-first-out, LIFO)的规律:从栈结构的整个生命期来看,更晚(早)
出栈的元素,应为更早(晚)入栈者;反之,更晚(早)入栈者应更早(晚)出栈。
4.1.2 操作实例
表4.2给出了一个存放整数的栈从被创建开始,按以上接口实施一系列操作的过程。
表4.2 栈操作实例
操 作 输 出 栈(左侧为栈顶) 操 作 输 出 栈(左侧为栈顶)
Stack() push(11) 11 3 7 5
empty() true size() 4 11 3 7 5
push(5) 5
push(6) 6 11 3 7 5
push(3) 3 5
empty() false 6 11 3 7 5
pop() 3 5
push(7) 7 6 11 3 7 5
push(7) 7 5
pop() 7 6 11 3 7 5
push(3) 3 7 5
pop() 6 11 3 7 5
top() 3 3 7 5
top() 11 11 3 7 5
empty() false 3 7 5
size() 4 11 3 7 5