1 / 38
文档名称:

数据结构课件-栈和队列.ppt

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

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

分享

预览

数据结构课件-栈和队列.ppt

上传人:mh900965 2018/2/25 文件大小:346 KB

下载得到文件列表

数据结构课件-栈和队列.ppt

相关文档

文档介绍

文档介绍:
栈的应用举例 数制转换 迷宫求解 表达式求值
* 栈和递归的实现
队列 链队列-- 队列的链式表示与实现 循环队列-- 队列的顺序表示与实现
第三章栈和队列
栈(stack): 先进后出( FILO)的线性表。
或后进先出( LIFO)的线性表。
或仅在表尾进行插入和删除操作的线性表。
栈顶(top): 线性表的表尾端,即可操作端。
栈底(bottom): 线性表的表头。
栈 抽象数据类型栈的定义
栈底
栈顶
......
a1
a2
a3
an-1
an
入栈(push)
出栈(pop)
例、一叠书或一叠盘子。
a n
a n-1
a2
a1
……
栈顶
栈底
栈的抽象数据类型
ADT Stack {
数据对象:D = {ai | ai属于Elemset,
(i=1,2,…,n, n≥0)}
数据关系:R1 = {<ai-1,ai>|ai-1,ai属于D,(i=2,3,…,n)} 约定an为栈顶, a1为栈底。
基本操作:
InitStack(&S); DestroyStack(&S);
ClearStack(&S); StackEmpty(S);
StackLength(S) ; GetTop(S, &e);
Push(&S, e); Pop(&S, &e);
StackTraverse(S, visit ( ))
}ADT Stack
栈的基本操作(之一)
InitStack(&S)
操作结果:构造一个空的栈S。
DestroyStack(&S)
初始条件: 栈S已经存在。
操作结果: 销毁栈S。
ClearStack(&S)
初始条件: 栈S已经存在。
操作结果: 将栈S重置为空栈。
栈的基本操作(之二)
StackEmpty(S)
初始条件: 栈S已经存在。
操作结果: 若栈S为空栈,则返回TURE;否则返回FALSE。
StackLength(S)
初始条件: 栈S已经存在。
操作结果: 返回栈S中的数据元素个数。
GetTop(S, &e)
初始条件: 栈S已经存在且非空。
操作结果: 用e返回栈S中栈顶元素的值。
栈的基本操作(之三)
Push(&S, e) /*入栈操作*/
初始条件: 栈S已经存在。
操作结果: 插入元素e为新的栈顶元素。
Pop(&S, &e) /*出栈操作*/
初始条件: 栈S已经存在且非空。
操作结果: 删除S的栈顶元素并用e返回其值。
StackTraverse(S, visit ())
初始条件: 栈S已经存在且非空。
操作结果: 从栈底到栈顶依次对S的每个元素调用函数visit ()。一旦visit ()失败,则操作失败。
栈的顺序表示与实现--- (顺序栈)
typedef struct{
SElemType *base;
/* 在栈构造之前和销毁之后,base的值为NULL*/
SElemType *top; /* 栈顶指针*/
int stacksize; /* 当前已分配的存储空间,以元素为单位*/
}SqStack;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define OVERFLOW -1
#define ERROR 0
顺序栈示意图
*base
*top
stacksize
......
a1
...
ai
an
*base
*top
stacksize
初始空栈
*top = *base;
stacksize = STACK_INIT_SIZE
顺序栈
顺序栈的操作实现举例 InitStack /* 构造一个空的栈S*/
Status InitStack(SqStack &s)
{ =( SElemType *)malloc
(STACK_INIT_SIZE * sizeof(SElemType));
if(!) exit(OVERFLOW);
= ;
= STACK_INIT_SIZE;
return OK;
} /* InitStack */

最近更新

幼儿园说课稿大班数学锦集7篇 23页

幼儿园小班幼儿教学总结八篇(精选8篇) 18页

幼儿园中班圣诞节活动总结(通用4篇) 5页

工程技术辞职报告(精选6篇) 8页

小狗四年级的作文(精选5篇) 4页

小学我喜欢冬天作文400字(通用5篇) 4页

对对联的作文(通用3篇) 5页

实用的财务工作计划集锦七篇(精选7篇) 11页

定格在记忆中的画面作文(通用3篇) 4页

学校趣味运动会活动方案(精选2篇) 6页

妇联年终工作总结(通用5篇) 15页

大学生机械实习报告(通用2篇) 4页

城南旧事读后感(精选4篇) 3页

因个人原因的辞职报告(通用5篇) 7页

后勤工作计划(通用2篇) 4页

半年个人工作总结(精选15篇) 40页

动物音乐会作文(精选8篇) 7页

初中数学教师年度考核个人总结(精选2篇) 5页

出纳实习周记(通用3篇) 16页

写哥哥的作文(通用14篇) 14页

关于七月的句子(精选6篇) 14页

公司员工个人辞职报告(精选7篇) 10页

会计岗位社会实践报告(通用6篇) 16页

仓库年终总结(通用11篇) 17页

中考优秀满分作文(通用4篇) 5页

个人求职信(精选12篇) 14页

万圣节活动总结(通用11篇) 11页

【精选】初中生活作文300字合集八篇(通用8篇.. 6页

【精华】幼儿园大班音乐教案锦集8篇 21页

【热门】初中生活作文汇总四篇(精选4篇) 6页