下载此文档

第3章 限定性线性表——栈和队列.ppt


文档分类:IT计算机 | 页数:约34页 举报非法文档有奖
1/34
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/34 下载此文档
文档列表 文档介绍
第3章限定性线性表——栈和队列

队列
返回主目录

栈的定义
栈的表示和实现
栈的应用举例
栈与递归的实现
返回主目录
栈的定义:
栈作为一种限定性线性表,是将线性表的插入和删除运算限制为仅在表的一端进行。通常将表中允许进行插入、删除操作的一端称为栈顶(Top),表的另一端被称为栈底(Bottom)。当栈中没有元素时称为空栈。栈的插入操作被形象地称为进栈或入栈,删除操作称为出栈或退栈。
返回主目录
根据栈定义,每次进栈的元素都被放在原栈顶元素之上而成为新的栈顶,而每次出栈的总是当前栈中“最新”的元素,即最后进栈的元素。因此,栈又称为后进先出的线性表。简称为LIFO表。如下图所示:
进栈、出栈图例
进栈
出栈
进栈
出栈
栈顶
栈底
an
a2
a1
返回主目录
栈的抽象数据类型定义
关系:栈中数据元素之间是线性关系
数据元素:可以是任意类型的数据,但必须属于同一个数据对象。
基本操作:
InitStack(S) 2. ClearStack(S)
3. IsEmpty(S) 4. IsFull(S) 5. Push(S,x)
6. Pop(S,x) 7. GetTop(S,x)
返回主目录
栈的表示和实现
栈在计算机中主要有两种基本的存储结构:顺序存储结构和链式存储结构。
顺序存储的栈为顺序栈;
链式存储的栈为链栈。
返回主目录

顺序栈是用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时由于栈的操作的特殊性,还必须附设一个位置指针top(栈顶指针)来动态地指示栈顶元素在顺序栈中的位置。通常以top = -1表示空栈。
返回主目录
用C语言定义栈的顺序存储结构
#define TRUE 1
#define FALSE 0
#define Stack_Size 50
 typedef struct
{StackElementType elem[Stack_Size];
/*用来存放栈中元素的一维数组*/
int top; /*用来存放栈顶元素的下标*/
}SeqStack;
返回主目录
顺序栈中的进栈和出栈图例
A
E
D
C
B
A
B
A
top
top
top
top
返回主目录
顺序栈基本操作的实现
1)初始化
void InitStack(SeqStack *S)
{/*构造一个空栈S*/
S->top= -1;
}
返回主目录

第3章 限定性线性表——栈和队列 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数34
  • 收藏数0 收藏
  • 顶次数0
  • 上传人中国课件站
  • 文件大小0 KB
  • 时间2011-10-11