《数据结构》课程教学资源:电子教案 第3章 栈和队列

第3章栈和队列 3.1 3.2队列 本章小结
第3章 栈和队列 3.1 栈 3.2 队列 本章小结

3.1栈 3.1.1栈的定义 3.1.2栈的顺序存储结 构及其基本运犷奥现 3.1.3栈的链式存储结构及 其基本运算的实现 3.1.4栈的应用例子
3.1.1 栈的定义 3.1.2 栈的顺序存储结 构及其基本运算实现 3.1.3 栈的链式存储结构及 其基本运算的实现 3.1.4 栈的应用例子 3.1 栈

3.1.1栈的定义 栈是一种只能在一端进行插入或删除操 作的线性表。表中允许进行插入、删除操作 的一端称为栈顶。 栈顶的当前位置是动态的栈顶的当前位 置由一个称为栈顶指针的位置指示器指示。 表的另一端称为栈底。 当栈中没有数据元素时称为空栈。 栈的插入操作通常称为进栈或入栈,栈的 删除操作通常称为退栈或出栈
栈是一种只能在一端进行插入或删除操 作的线性表。表中允许进行插入、删除操作 的一端称为栈顶。 栈顶的当前位置是动态的,栈顶的当前位 置由一个称为栈顶指针的位置指示器指示。 表的另一端称为栈底。 当栈中没有数据元素时,称为空栈。 栈的插入操作通常称为进栈或入栈,栈的 删除操作通常称为退栈或出栈。 3.1.1 栈的定义

4 433 dcba 43310 cba 4331 0 0 (a)空栈 (b)元素a入栈(c)元素b、c、d入栈(d元素d出栈

栈的几种基本运算如下: (1)初始化栈 EInitstack(&s):构造一个空栈s (2)销毁栈 ClearStack(&s):释放栈s占用的 存储空间。 (3)求栈的长度 StackLength(s):返回栈s中 的元素个数。 (4)判断栈是否为空 StackEmpty(s):若栈s 为空,则返回真;否则返回假
栈的几种基本运算如下: (1)初始化栈InitStack(&s):构造一个空栈s 。 (2)销毁栈ClearStack(&s):释放栈s占用的 存储空间。 (3)求栈的长度StackLength(s):返回栈s中 的元素个数。 (4)判断栈是否为空StackEmpty(s):若栈s 为空,则返回真;否则返回假

(5)进栈Push(&S,e):将元素e插入到栈s中作 为栈顶元素。 ()出栈Pop(&s,&e):从栈s中退出栈顶元素, 并将其值赋给e。 (7)取栈顶元素 GetTop(s,&e):返回当前的栈 顶元素,并将其值赋给e。 (8)显示栈中元素 DispStack(s):从栈顶到栈 底顺序显示栈中所有元素
(5)进栈Push(&S,e):将元素e插入到栈s中作 为栈顶元素。 (6)出栈Pop(&s,&e):从栈s中退出栈顶元素, 并将其值赋给e。 (7)取栈顶元素GetTop(s,&e):返回当前的栈 顶元素,并将其值赋给e。 (8)显示栈中元素DispStack(s):从栈顶到栈 底顺序显示栈中所有元素

∥3.1.2栈的顺序存情结构及其基本运算奥现 假设栈的元素个数最大不超过正整数 Maxsize,所有的元素都具有同一数据类型 ElemType,则可用下列方式来定义栈类型 Sastack. typedef struct ElemType elem MaxSizel int top 栈指针* SqStack
3.1.2 栈的顺序存储结构及其基本运算实现 假设栈的元素个数最大不超过正整数 MaxSize,所有的元素都具有同一数据类型 ElemType,则可用下列方式来定义栈类型 SqStack: typedef struct { ElemType elem[MaxSize]; int top; /*栈指针*/ } SqStack;

例3.1设有4个元素a、b、c、d进栈,给 出它们所有可能的出栈次序。 答:所有可能的出栈次序如下 abcd abdc acbd acdb adcb bacd bade bcad beda bdca cbad cbda cdba dcba
例3.1 设有4个元素a、b、c、d进栈,给 出它们所有可能的出栈次序。 答:所有可能的出栈次序如下: abcd abdc acbd acdb adcb bacd badc bcad bcda bdca cbad cbda cdba dcba

例3.2设一个栈的输入序列为A,B,C,D,则 借助一个栈所得到的输出序列不可能是 (A)A, B, C, B)D, C,B,A (C)A, CD, B D) D,A, B, C 答:可以简单地推算,得容易得出D,A,B,C 是不可能的,因为D先出来,说明A,B,C,D均在 栈中按照入栈顺序在栈中顺序应为D,C,B,A, 出栈的顺序只能是D,C,B,A。所以本题答案 为D
例3.2 设一个栈的输入序列为A,B,C,D,则 借助一个栈所得到的输出序列不可能是 。 (A) A,B,C,D (B) D,C,B,A (C) A,C,D,B (D) D,A,B,C 答:可以简单地推算,得容易得出D,A,B,C 是不可能的,因为D先出来,说明A,B,C,D均在 栈中,按照入栈顺序,在栈中顺序应为D,C,B,A, 出栈的顺序只能是D,C,B,A。所以本题答案 为D

例33已知一个栈的进栈序列是1,2,3 ●●● n 其输出序列是P1P2…Dn,若p=n,则p的值。 (A)i (B)n-1 (C)n-计+1(①D)不确定 答:当p=n时,输出序列必是n,n-1,3,2,1, 则:p2=n-1,p3=n-2,…,pn=1,推断出p=n-+1,所以 本题答案为C
例3.3 已知一个栈的进栈序列是1,2,3,…,n, 其输出序列是p1 ,p2 ,…,pn ,若p1=n,则pi的值 。 (A) i (B) n-i (C) n-i+1 (D) 不确定 答:当p1=n时,输出序列必是n,n-1,…,3,2,1, 则:p2=n-1,p3=n-2,…,pn =1,推断出pi=n-i+1,所以 本题答案为C
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构》课程教学资源:电子教案 第1章 绪论.ppt
- 《数据结构》课程教学资源:电子教案 第11章 内排序.ppt
- 《数据结构》课程教学资源:电子教案 第10章 查找.ppt
- 《数据结构》课程教学资源:电子教案 例题复习范围讲解.doc
- 《数据结构》课程教学资源:电子教案 总复习(共十章).ppt
- 中国科学技术大学: 《基于人工免疫的入侵预警系统》技术报告讲义.ppt
- 《信息与网络安全》讲义 第四章 网络入侵与防范.doc
- 《CORBA技术》介绍电子课件讲解.ppt
- 《数据压缩技术概论》电子课件讲义.ppt
- 《数据结构》课程教学资源:第十二章 动态存储管理.ppt
- 《数据结构》课程教学资源:第十一章 外排序.ppt
- 《数据结构》课程教学资源:第十章 内排序.ppt
- 《数据结构》课程教学资源:第九章 检索.ppt
- 《数据结构》课程教学资源:第八章 图.ppt
- 《数据结构》课程教学资源:第七章 二叉树.ppt
- 《数据结构》课程教学资源:第六章 树型结构.ppt
- 《数据结构》课程教学资源:第五章 递归.ppt
- 《数据结构》课程教学资源:第四章 字符串、数组 和特殊矩阵.ppt
- 《数据结构》课程教学资源:第三章 线性表的链式存储.ppt
- 《数据结构》课程教学资源:第二章 线性表及其顺序存储.ppt
- 《数据结构》课程教学资源:电子教案 第5章 数组和稀疏矩阵.ppt
- 《数据结构》课程教学资源:电子教案 第6章 递归.ppt
- 《数据结构》课程教学资源:电子教案 第7章 树形结构.ppt
- 《数据结构》课程教学资源:电子教案 第8章 广义表.ppt
- 《数据结构》课程教学资源:电子教案 第9章 图.ppt
- 《Scopus--特点与使用指南》讲义.ppt
- 《word排版教程》 技巧讲义2.doc
- 《word排版教程》 技巧讲义1.doc
- 《word排版教程》 第十章 常见问题及解决方法.doc
- 《word排版教程》 第二章 格式化文档.doc
- 《word排版教程》 第三章 版式设置技巧.doc
- 《word排版教程》 第四章 处理长文档的技巧.doc
- 《word排版教程》 第五章 处理表格和图表的技巧.doc
- 《word排版教程》 第九章 公式编辑器和域的使用技巧.doc
- 《word排版教程》 附录A Word常用快捷键.doc
- 《微机原理与接口技术》课程教学资源(PPT课件)第一章 基础知识.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第二章 微型计算机基础.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第三章 指令系统.ppt
- 微机原理与接口技术》 第三章(3-12) 指令系统2.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第四章 汇编语言程序设计.ppt