文件名称:栈操作实例-web服务稳定性测试 负载测试 可靠性测试 测试报告
文件大小:10.35MB
文件格式:PDF
更新时间:2024-07-30 10:59:05
数据结构 邓俊辉 清华大学 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