《数据结构》课程教学资源:第三章 特殊线性表一栈、队、串

第三章 特殊线性表一栈、队、串
1

§31栈 §3.1.1栈的逻辑结构 )基本概念 栈是一种限定仅在表的一端进行插入与删除的线性表 允许进行插入与删除的这一端称为栈顶,而另一端称为栈底 不含元素的空表称为空栈 插入与删除分别称进栈与出栈。 栈也称作先进后出( First in last out)的线性表,简称FILO表 a1 a a3 a 进栈 4 出栈 栈底 栈 顶 图栈示意图 2
2 §3.1 栈 • (一)基本概念 • 栈是一种限定仅在表的一端进行插入与删除的线性表 • 允许进行插入与删除的这一端称为栈顶,而另一端称为栈底 • 不含元素的空表称为空栈 • 插入与删除分别称进栈与出栈。 • 栈也称作先进后出(First In Last Out)的线性表,简称FILO表 §3.1.1 栈的逻辑结构 a1 a2 a3 a4 … an 栈 底 栈 顶 进栈 出栈 图 -栈示意图

§311栈的逻辑结构 (一)基本概念 ·栈应用的例子 火车扳道站 进入单车道死胡同的汽车 记录中断返回地址(断点)的结构
3 • (一)基本概念 • 栈应用的例子 –火车扳道站 –进入单车道死胡同的汽车 –记录中断返回地址(断点)的结构 §3.1.1 栈的逻辑结构

s311栈的逻辑结构 ()基本概念 ·可能的出栈次序 ·设n=3,按1,2,3的次序进栈,则可能的出栈 次序为 123、132、213、231、321 不可能的次序是: 312 对任意元素k,若它后面有小于它的元素,则 这些小于它的元素必须以“逆序”出现
4 §3.1.1 栈的逻辑结构 • (一)基本概念 • 可能的出栈次序 • 设n=3,按1,2,3的次序进栈,则可能的出栈 次序为 1 2 3、1 3 2、2 1 3、2 3 1、3 2 1 不可能的次序是: 3 1 2 • 对任意元素k,若它后面有小于它的元素,则 这些小于它的元素必须以“逆序”出现

s311栈的逻辑结构 (二)基本操作 ·Init(s):初始化栈s。设定一个空栈,栈的所有其它操作仅在此 操作执行(或隐含执行)之后才能进行。 Empty(s):判定函数。若栈s为空,返回“真”,否则返回 假 Push(s,x):入栈函数。将元素x放到栈顶上,栈溢出时应返回特 殊标志。 Pop(S):出栈函数。栈sS不空时,将栈顶元素摘除,并返回该元 素。否则触发异常。 GetTop(s):读栈顶元素函数。与Pop(s)类似,但不摘取栈顶元素 · Clear(s):清除操作。使栈s重新变为一个空栈。这里,s是个已 存在的栈。 Len(s):求长度函数。返回栈s中元素个数
5 §3.1.1 栈的逻辑结构 • (二) 基本操作 • Init(s):初始化栈s。设定一个空栈,栈的所有其它操作仅在此 操作执行(或隐含执行)之后才能进行。 • Empty(s):判定函数。若栈s为空,返回“真” ,否则返回 “假”。 • Push(s,x):入栈函数。将元素x放到栈顶上,栈溢出时应返回特 殊标志。 • Pop(S):出栈函数。栈s不空时,将栈顶元素摘除,并返回该元 素。否则触发异常。 • GetTop(s):读栈顶元素函数。与Pop(s)类似,但不摘取栈顶元素。 • Clear(s):清除操作。使栈s重新变为一个空栈。这里,s是个已 存在的栈。 • Len(s):求长度函数。返回栈s中元素个数

s311栈的逻辑结构 (三)基本操作使用示例 编写一个带编辑功能的从终端上接收字符的程序 若依次输入 “#代表退格; Cgf# HIna##NA “@”表示作废 则相当于输入 CHINA 若依次输入 chiachina ·则相当于输入CHNA
6 §3.1.1 栈的逻辑结构 • (三) 基本操作使用示例 • 编写一个带编辑功能的从终端上接收字符的程序 • 若依次输入: Cg#HIna##NA 则相当于输入CHINA • 若依次输入 chi@CHINA • 则相当于输入CHINA “#”代表退格; “@”表示作废

Init(s) ch= getcho,∥读入一个字符 while(ch=EOF)∥当未读入结束符时,一直循环 switch(ch) case '# Pop(s); break case(a Clear(s); break default Push(s, ch ch=getcho
7 … … Init(s); ch = getch(); //读入一个字符 while (ch!=EOF) //当未读入结束符时,一直循环 { switch(ch) { case '#' : Pop(s); break; case '@' : Clear(s); break; default: Push(s, ch); } ch = getch(); }

§3.11栈的逻辑结构 (四)栈抽象类 template class STacke protected long len ublic long getLen(void)return len;) char IsEmpty(return (len<=0)? 1: 0;) virtual TElem& push(telem &elem)=0 virtual TElem& pop (void)=0 virtual TElem& GetTop(void)=0
8 §3.1.1 栈的逻辑结构 • (四)栈抽象类 template class TStack0 { protected: long len; public: long GetLen (void) {return len; }; char IsEmpty ( ) {return (len<=0)? 1:0; }; virtual TElem& Push (TElem &elem) =0; virtual TElem& Pop (void) =0; virtual TElem& GetTop (void) =0;

s311栈的逻辑结构 (四)栈抽象类 virtual TElem& rollDown(=0 virtual TElem& rollup (=0 virtual void Clear(=0;
9 §3.1.1 栈的逻辑结构 • (四)栈抽象类 virtual TElem& RollDown ( ) =0; virtual TElem& RollUp ( ) =0; virtual void Clear ( ) =0; }

s3.12栈的顺序存贮结构 (-)存贮方法 ·栈是一种特殊的线性表,本节先介绍顺序存贮方式 用一维数组模拟连续的存贮空间 ·用一个量指示插入/删除端的位置,一般称该量为栈顶 指针 元素空间: al a az a 栈顶指示器: 图栈顺序存储结构 假设栈底在地址小的一端
10 §3.1.2 栈的顺序存贮结构 • (一) 存贮方法 • 栈是一种特殊的线性表,本节先介绍顺序存贮方式 • 用一维数组模拟连续的存贮空间 • 用一个量指示插入/删除端的位置,一般称该量为栈顶 指针 a1 a2 a3 a4 … … an 元素空间: 栈顶指示器: 图 - 栈顺序存储结构 假设栈底在地址小的一端
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构》课程教学资源:第二章 线性表.ppt
- 《数据结构》课程教学资源:第十章 排序算法.ppt
- 《数据结构》课程教学资源:第七章 广义表.ppt
- 《Visual Foxpro》第四章 表的基本操作.ppt
- 《Visual Foxpro》第十章 面向对象程序基础.ppt
- 《Visual Foxpro》第十四章 数据库应用系统开发.ppt
- 《Visual Foxpro》第十二章 菜单设计.ppt
- 《Visual Foxpro》第十三章 报表与标签设计.ppt
- 《Visual Foxpro》第十一章 表单设计与应用.ppt
- 《Visual Foxpro》第六章 SQL语言的应用.ppt
- 《Visual Foxpro》第八章 Visual FoxPro项目管理器.ppt
- 《Visual Foxpro》第五章 数据库的基本操作.ppt
- 《Visual Foxpro》第二章 Visual FoxPro操作基础.ppt
- 《Visual Foxpro》第九章 结构化程序设计.ppt
- 《Visual Foxpro》第三章 Visual FoxPro的数据及其运算.ppt
- 《Visual Foxpro》第七章 查询与视图设计.ppt
- 《Visual Foxpro》第一章 数据库系统基础知识.ppt
- 《Visual Foxpro》目录.ppt
- 《Java语言程序设计》课程教学资源(PPT课件讲稿)第三章 面向对象技术.ppt
- 《Java语言程序设计》课程教学资源(PPT课件讲稿)第四章 类和对象的高级特征.ppt
- 《数据结构》课程教学资源:第四章 数组与十字链表.ppt
- 《数据结构》课程教学资源:第五章 树形结构(1/2).ppt
- 《数据结构》课程教学资源:第五章 树形结构(2/2).ppt
- 《数据结构》课程教学资源:第六章 图结构(6.1-6.5).ppt
- 《数据结构》课程教学资源:第六章 图结构(6.6-6.8).ppt
- 《数据结构》课程教学资源:第一章 概述.ppt
- 《数据结构》课程教学资源:第八章 检索结构.ppt
- 西北工业大学:《计算机系统结构》序论.ppt
- 西北工业大学:《计算机系统结构》第1章 计算机系统结构的基本.ppt
- 西北工业大学:《计算机系统结构》第2章 数据表示与指令系统.ppt
- 西北工业大学:《计算机系统结构》第3章 总线、中断与I/0系统.ppt
- 西北工业大学:《计算机系统结构》第4章 存贮体系.ppt
- 西北工业大学:《计算机系统结构》第3章 习题处理.ppt
- 西北工业大学:《计算机系统结构》第4章 直接映象及其变换.ppt
- 西北工业大学:《计算机系统结构》总复习.ppt
- 西北工业大学:《计算机系统结构》总复习及模拟试题.ppt
- 《Access数据库应用教程》教学资源(PPT课件讲稿)各章习题参考答案.ppt
- 《Access数据库应用教程》教学资源(PPT课件讲稿)第10章 Access模块和应用程序设计.ppt
- 《Access数据库应用教程》教学资源(PPT课件讲稿)第11章 Access数据库的管理.ppt
- 《Access数据库应用教程》教学资源(PPT课件讲稿)第12章 综合实例应用.ppt