1 / 83
文档名称:

第三 章 栈和队列.ppt

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

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

分享

预览

第三 章 栈和队列.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第三 章 栈和队列.ppt

文档介绍

文档介绍:
队列
递归
第三章栈和队列
栈( Stack )
定义:是限定仅在表尾进行插入或删除操作的线性表。
允许插入和删除的一端
称为栈顶(top),另一端
称为栈底(bottom)
特点:后进先出(LIFO)
a1
top
bottom
an
.
.
.
.
进栈
出栈
栈的主要操作
ADT Stack {
//对象由数据类型为StackData的元素构成
int Push (stack *S, StackData x); //进栈
int Pop (stack *S, StackData &x); //出栈
int GetTop (stack *S, StackData &x); //取栈顶
void InitStack (stack *S); //置空栈
int StackEmpty (stack *S); //判栈空否
int StackFull (stack *S); //判栈满否
}
栈的表示和实现
顺序栈:栈的顺序存储结构,利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,指针top指向栈顶元素在顺序栈中的下一个位置,
base为栈底指针,指向栈底的位置。
base
空栈
a 进栈
b 进栈
a
a
b
top
base
top
base
top
top
top
a
b
c
d
e
e 进栈
a
b
c
d
e
f 进栈溢出
a
b
d
e 出栈
c
base
base
base
top
顺序栈的类型表示:
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef char StackData;
typedef struct { //顺序栈定义
StackData *base; //栈底指针
StackData *top; //栈顶指针
int stacksize;//当前已分配的存储空间
} SeqStack;
判栈空
int StackEmpty (SeqStack *S) {
if( S->top == S->base ) return 1 //判栈空,空则返回1
else return 0; //否则返回0
}
判栈满
int StackFull (SeqStack *S) {
if( S->top- S->base >= S-> StackSize ) return 1
//判栈满,满则返回1
else return 0; //否则返回0
}
顺序栈的基本运算:
初始化
void InitStack ( SeqStack *S) { //置空栈
S->base =( StackData *)malloc(STACK_INIT_SIZE * sizeof(StackData)); if (!S->base) exit(OVERFLOW);
S->top = S->base ;
S->stacksize= STACK_INIT_SIZE ;
Return ok;
}
入栈
int Push (SeqStack *S, StackData x) {
//插入元素x为新的栈顶元素
if ( StackFull (S) ){
S->base =( StackData *)malloc(S->base ,
(S->stacksize+ STACKINCREMENT) * sizeof(StackData));
if(! S->base)exit(overflow);
S->top= S->base + S->stacksize;
S->stacksize+= STACKINCREMENT; //追加存储空间
}
*(S->top)=x;
(S->top)++;
Return ok
}
取栈顶元素
int Gettop (SeqStack *S, StackData &x) {
//若栈空返回0, 否则栈顶元素读到x并返回1
if ( StackEmpty(S) ) return 0; (S->top)--;
x = *(S->top);
return 1;
}

最近更新

绿色创业孵化与区域经济的联动效应 35页

2025年九江职业大学单招职业倾向性考试题库带.. 43页

2025年云南艺术学院马克思主义基本原理概论期.. 13页

高效数据库管理技术 38页

2025年兰坪县招教考试备考题库及答案解析(夺.. 30页

2025年内蒙古兴安盟单招职业倾向性考试题库附.. 45页

2025年务川仡佬族苗族自治县招教考试备考题库.. 31页

2025年南京大学金陵学院马克思主义基本原理概.. 13页

2025年南昌工学院马克思主义基本原理概论期末.. 13页

肥料行业集中度结构分析 35页

网格化纹理映射方法改进 36页

2025年吕梁师范高等专科学校马克思主义基本原.. 12页

网络拍卖平台竞拍规则的法律分析与建议 29页

2025年垣曲县招教考试备考题库附答案解析(夺.. 30页

绿色制造技术在电子元件生产中的实践 25页

2025年天津美术学院马克思主义基本原理概论期.. 13页

网络拓扑边界分析 35页

2025年宁明县幼儿园教师招教考试备考题库附答.. 30页

职业病防治中中医药的智能化应用 35页

2025年山西华澳商贸职业学院单招职业适应性测.. 45页

2025年广西工商职业技术学院单招职业技能测试.. 43页

2025年开封文化艺术职业学院马克思主义基本原.. 12页

2025年抚松县幼儿园教师招教考试备考题库附答.. 30页

胖东来卫生间梳子配置服务实施标准 60页

2025年杭州万向职业技术学院马克思主义基本原.. 12页

2025年武宁县幼儿园教师招教考试备考题库带答.. 31页

2025年江西应用工程职业学院马克思主义基本原.. 13页

2025年浙江科技大学马克思主义基本原理概论期.. 13页

2025年湖北中医药大学马克思主义基本原理概论.. 12页

2025年湖州学院单招职业倾向性测试题库带答案.. 45页