1 / 25
文档名称:

数据结构与算法分析lecture4(栈).ppt

格式:ppt   页数:25
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构与算法分析lecture4(栈).ppt

上传人:df158687 2015/6/2 文件大小:0 KB

下载得到文件列表

数据结构与算法分析lecture4(栈).ppt

相关文档

文档介绍

文档介绍:Stacks(栈)
栈是只允许在同一端进行插入和删除运算的线性表。允许插入和删除的那一端称为栈顶,另一端为栈底。若有栈
S = (s0,s1,……sn-1)
则s0为栈底结点,sn-1为栈顶结点。
栈的结点插入为进栈
栈的结点删除为出栈
栈具有后进先出(LIFO)的特性
S0
S1
….
Sn-1
进栈
出栈
栈顶
栈底
2003-8-25
1
Lecture notes
0
1
MAXN-1
top
0
1
MAXN-1
top
(a) 栈结构示意图
(b) 栈空
(c) 栈满
2003-8-25
2
Lecture notes
Array-Based Stacks(顺序栈)
可以用顺序存储线性表来表示栈,为了指明当前执行插入和删除运算的栈顶位置,需要一个游标变量top(习惯称为栈顶指针),top指出栈顶表元在数组中的下标。始终指向待插入元素的位置。
top是下一次进栈时,进栈表元要存入的数组元素下标。当栈为空时,top=0;栈满时,top=MAXN(数组元素个数),如图中的(b)和(c)。
a2
a1
a1
a2
top
2003-8-25
3
Lecture notes
进栈:
首先把进栈表元存入以top为下标的数组元素中,然后top加1,使top变为下一次进栈表元在数组中的下标。
出栈:
首先执行top减1,然后把以top为下标的栈顶表元送到接受出栈表元的变量中。同样限制在栈空时,不能再出栈;在栈满时,不能再入栈。
2003-8-25
4
Lecture notes
Array-based stack class implementation(顺序栈类的实现)
//Array-based stack class implementation
Template <class Elem> class AStack:public Stack<Elem>
{
private:
int size;//Maximum size of stack
int top;//Index for top element
//Array holding stack elements
Elem *listArray;
表示栈中的第一个空闲位置
2003-8-25
5
Lecture notes
public:
AStack(int sz=DefaultListSize)
{//Constructor
size = sz;
top = 0;
listArray = new Elem[sz];
}
//Destructor
~AStack() { delete [] listArray; }
void clear() { top = 0; }
2003-8-25
6
Lecture notes
bool push(const Elem& item)
{
if(top == size) return false;//Stack is full
else { listArray[top++] = item;return true; }
}
bool pop(Elem& it)//Pop top element
{
if (top == 0) return false;
else { it = listArray[--top]; return true; }
}
2003-8-25
7
Lecture notes
bool topvalue(Elem& it) const
{//Return top element
if (top == 0) return false;
else
{
it = listArray[top-1];
return true;
}
}
int length() const {return top;}
};
2003-8-25
8
Lecture notes
An array-based stack storing
variable-length strings.
每个位置存储一个字符或一个整数,该整数说明栈中位于其左边的字符串长度。
‘a’
‘b’
‘c’
3
‘l’
‘h’
‘l’
‘e’
‘o’
5
0 1 2 3 4 5 6 7 8 9 10
top=10
2003-8-25
9
Lecture notes
Linked Stacks(链式栈)
即用链表来实现栈。
链表的第一个表元是栈顶结点,链表的末尾表元是栈底结点。
链表的首表元指针就是栈顶指针top,top为NULL的空链表是空栈。
x

t

最近更新

2025年舞阳县幼儿园教师招教考试备考题库带答.. 30页

小学历史与文化知识竞赛题库100道带答案(培优.. 37页

2025年贵州轻工职业大学马克思主义基本原理概.. 13页

2025年那坡县招教考试备考题库带答案解析(必.. 31页

2025年陕西交通职业技术学院单招职业技能考试.. 44页

2026年仙桃职业学院单招职业倾向性考试题库带.. 44页

2026年中医住培带教师资理论考核题库100道附完.. 39页

2026年主管中药师考试备考题100道附参考答案(.. 38页

2026年山西电力职业技术学院单招职业倾向性考.. 45页

2026年网络安全知识竞赛题库带答案(能力提升.. 40页

最新全国政法队伍教育整顿知识竞赛试题库含答.. 40页

新安全生产法知识竞赛试题库附参考答案(完整.. 44页

最新煤气操作证考试题100道附答案(能力提升).. 39页

桥梁监测数据去噪组合方法研究 31页

2025年儿童房项目发展计划 72页

气象自观数据驱动的LSTM模型:面向机场精细化.. 6页

2025年长江职业学院单招职业技能测试题库附答.. 44页

2025河南洛阳市汝阳县机关事务服务中心招聘劳.. 44页

2025贵州毕节官寨苗族乡人民政府面向社会招聘.. 44页

2026年c语言专科期末测试题含答案 13页

2026年C语言考试题库(网校专用) 13页

2026年云南省大理白族自治州单招职业适应性测.. 44页

2026年内蒙古民族幼儿师范高等专科学校单招职.. 44页

2026年国开电大基础会计形考题库含完整答案【.. 40页

基于知识图谱的武强年画传统色彩设计方法研究.. 26页

2026年危化品安全生产知识题库及完整答案【夺.. 41页

基于时空信息特征的大规模遥感影像目标物变化.. 7页

2025福建漳州市公安局招聘警务辅助人员104人参.. 50页

2025交通运输部所属事业单位第七批统一招聘10.. 18页

2026年江西交通职业技术学院单招职业倾向性考.. 37页