《数据结构》课程教学资源:第三章 栈和队列

第三章栈和队列 3.1栈 栈的定义、栈的存储结构、栈的应用。 3.2队列 队列的定义、队列存储结构、队列的应用。 栈和队列的逻辑结构和物理结构,以及它们之 间的相互关系 定义与之相适应的运算 设计相应的算法 分析算法的效率 1
1 第三章 栈和队列 3.1 栈 栈的定义、栈的存储结构、栈的应用。 队列的定义、队列存储结构、队列的应用。 3.2 队列 栈和队列的逻辑结构和物理结构,以及它们之 间的相互关系 定义与之相适应的运算 设计相应的算法 分析算法的效率

3.1栈(堆栈) 3.1.1栈的定义 栈的概念 (stac)是插入和删除操作限定在一端进行的线性表 多栈的逻辑表示为:S=(a1,a2,,an 栈页tp):表中允许进行插入、删除操作的一端。 栈顶的当前位置是动态变化的)的栈顶的当前位 置由一个称为栈顶指针的位置指示器来指示。 栈底 bottom):表的另一固定端非变化的) 多不含元素的栈称为空 2
2 3.1.1 栈的定义 一. 栈的概念 栈(stack)是插入和删除操作限定在一端进行的线性表。 栈的逻辑表示为:S=(a1 ,a2 ,…an ) 栈顶(top) :表中允许进行插入、删除操作的一端。 栈顶的当前位置是动态(变化的)的,栈顶的当前位 置由一个称为栈顶指针的位置指示器来指示。 栈底(bottom):表的另一固定端(非变化的) 不含元素的栈称为空栈. 3.1 栈(堆栈)

3.1栈(堆栈) 3.1.1栈的定义 栈的概念 多栈的运算特性是后进先出( Last in first out--LIFO) 或先进后出( First in last out--FILO 1234 进栈顺序 出栈顺序 栈顶→ 栈底(固定端) 3N
3 3.1.1 栈的定义 一. 栈的概念 栈的运算特性是后进先出(Last In First Out—LIFO) 或先进后出(First In Last Out—FILO) 3.1 栈(堆栈) 栈底(固定端) 1 2 3 4 栈顶 进栈顺序 出栈顺序

3.1栈(堆栈) 31一个栈的输入序列为abcd,则下列序列中不可 能是栈的输出序列的是( A. bcda B dacb C bcad D. adcb 二.栈的基本运算 多初始化线 nitstack③:构造一个空栈s 多销℃ barTack③)释放栈s占用的存储空间。 求的长度 tackling(.返回栈s中的元素个数。 多判断是否为多cEmp③:若栈s为空,则返回真; 否则返回假。 4
4 例3.1 一个栈的输入序列为abcd ,则下列序列中不可 能是栈的输出序列的是( ) 3.1 栈(堆栈) A. bcda B. dacb C. bcad D. adcb 二. 栈的基本运算 初始化栈InitStack(s):构造一个空栈s。 销毁栈ClearStack(s):释放栈s占用的存储空间。 求栈的长度StackLength(s):返回栈s中的元素个数。 判断栈是否为空StackEmpty(s):若栈s为空,则返回真; 否则返回假

3.1栈(堆栈) 二.栈的基本运算 多进Push③):入栈操作,在栈s顶部插入元素e。 多出Pop(e:出栈函数,若s不空,则返回栈顶元 素并将其值赋给e,然后删除该栈顶元素;否则返 回空元素NULL。 多线页元素Geop(s,)返回当前的栈顶元素,并将 其值赋给与Pop(s,e)函数的差别在不删除栈顶元 素 多显示线中元素 isp Stack(s):从栈顶到栈底顺序显示 栈中所有元素
5 进栈Push(s,e):入栈操作,在栈s顶部插入元素e。 出栈Pop(s,e):出栈函数,若s不空,则返回栈顶元 素并将其值赋给e,然后删除该栈顶元素;否则返 回空元素NULL。 取栈顶元素GetTop(s,e):返回当前的栈顶元素,并将 其值赋给e,与Pop(s,e)函数的差别在不删除栈顶元 素。 显示栈中元素DispStack(s):从栈顶到栈底顺序显示 栈中所有元素。 3.1 栈(堆栈) 二. 栈的基本运算

3.1栈(堆栈) .12栈的顺序存储结构及其基本运算的实现 顺序栈的存储结构描述 舨序栈:即栈的顺序存储结构,是利用一组地址连 续的存储单元(数组)依次存放栈的数据元素。同时 附设指针top指示栈顶元素在顺序栈中的位置。 顺序找的类型定义: f define maxsize 50 typedef int(char,,) Elemtype;如何访问栈顶 typedef struct 元素? ElemType data Sastack *s sI int top;/栈]元置 6 SqStack
6 3.1.2栈的顺序存储结构及其基本运算的实现 顺序栈:即栈的顺序存储结构,是利用一组地址连 续的存储单元(数组)依次存放栈的数据元素。同时 附设指针top指示栈顶元素在顺序栈中的位置。 3.1 栈(堆栈) 一. 顺序栈的存储结构描述 # define MaxSize 50 typedef int(char,…) Elemtype; typedef struct {ElemType data[MaxSize]; int top; //栈顶元素位置 } SqStack; 顺序栈的类型定义: SqStack *s, s1; 如何访问栈顶 元素?

3.1栈(堆栈) 版房的带点 多s->data[表示第计1个进栈的元素 多s>dat>op表示栈顶元素;「"高地址 多当->top=-表示空栈; top c|2 多当s->top= MaxSize-表示栈满 b1 多栈中元素个数或栈的长度为: dataa0低地址 s>top+1。 7
7 3.1 栈(堆栈) s->data[i]表示第i+1个进栈的元素; s->data[s->top]表示栈顶元素; 当s->top=-1表示空栈; 当s->top=MaxSize-1表示栈满; 顺序栈的特点: data top 低地址 高地址 0 1 2 n s a b c d 栈中元素个数或栈的长度为: s->top+1

3,1栈(堆栈) 顺序栈的基本运算 ●始化线 Initstack(s) 建立一个新的空栈s,实际上是将栈顶指针指向-1即可 void Initstack(sqstack *&s) 0钱5进行初始化 s=( Sqstack2) malloc( sizeof( Sqstack);顺序栈s S->top=-1; Maxsize 空栈 top 栈底
8 二. 顺序栈的基本运算 ⚫初始化栈InitStack(s) void InitStack(SqStack *&s) { //对栈s进行初始化 s=(SqStack *)malloc(sizeof(SqStack)); s->top=-1; } 建立一个新的空栈s,实际上是将栈顶指针指向-1即可。 top -1 栈底 0 1 2 … MaxSize-1 顺序栈s 空栈 3.1 栈(堆栈)

3,1栈(堆栈) 顺序栈的基本运算 销毁线 Clearstack(s) void Clearstack( sqStack *&s) free(s) 顺序栈s 求的长度 tacklength(③) MaxSize-1 int StackLength(sqstack *s top→2 return(s->top+1) 1栈底 9
9 二. 顺序栈的基本运算 ⚫销毁栈ClearStack(s) void ClearStack(SqStack *&s) { free(s); } int StackLength(SqStack *s) { return(s->top+1); } ⚫ 求栈的长度StackLength(s) top -1 栈底 0 1 2 … MaxSize-1 顺序栈s 3.1 栈(堆栈)

3,1栈(堆栈) 顺序栈的基本运算 兴等为会CEmy() Sta aStac return(s->top==-1) 显示线中元素 Disp Stack③ void Dispstack( sqstack *s) 从栈顶到栈底顺序显示栈中所有元素。 int 1; for〔i=s>top;i>=0;i printf("%oc", s->datai printf("in") 10
10 二. 顺序栈的基本运算 ⚫判断栈是否为空StackEmpty(s) int StackEmpty(SqStack *s) { return(s->top==-1); } ⚫ 显示栈中元素DispStack(s) void DispStack(SqStack *s) {//从栈顶到栈底顺序显示栈中所有元素。 int i; for (i=s->top;i>=0;i--) printf("%c ",s->data[i]); printf("\n"); } 3.1 栈(堆栈)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构》课程教学资源:第七章 树和二叉树.ppt
- 《数据结构》课程教学资源:第一章 绪论.ppt
- 《计算机组成原理》课程教学资源:附录——试题类型及解答.ppt
- 《计算机组成原理》课程教学资源:控制器教学实验.ppt
- 《计算机组成原理》课程教学资源:直播课堂内容.ppt
- 《计算机组成原理》课程教学资源:期未复习指导.ppt
- 清华大学:《编译原理》课程教学资源_语法分析.ppt
- 清华大学:《编译原理》课程教学资源_总结.ppt
- 清华大学:《编译原理》课程教学资源_第六章 补充算符优先分析.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.3 SLR(1)分析技术.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.1 概述 自下而上的语法分析 LR分析器 6.2 LR(0)分析.ppt
- 清华大学:《编译原理》课程教学资源_第六章 LR分析 6.4 LR(1)和LALR(1)分析规范LR分析.ppt
- 清华大学:《编译原理》课程教学资源_第九章 代码优化.ppt
- 清华大学:《编译原理》课程教学资源_第五章 LL(1)文法及其分析程序.ppt
- 清华大学:《编译原理》课程教学资源_第二章 PL/0编译程序.ppt
- 清华大学:《编译原理》课程教学资源_第十章 代码生成.ppt
- 清华大学:《编译原理》课程教学资源_第一章 概述.ppt
- 清华大学:《编译原理》课程教学资源_第八章 目标程序运行时的组织.ppt
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-4)符号表.ppt
- 清华大学:《编译原理》课程教学资源_第七章 语法制导翻译和中间代码生成(7-3)中间代码生成.ppt
- 《数据结构》课程教学资源:第九章 图.ppt
- 《数据结构》课程教学资源:第二章 线性表.ppt
- 《数据结构》课程教学资源:第五章 数组和稀疏矩阵.ppt
- 《数据结构》课程教学资源:第六章 递归.ppt
- 《数据结构》课程教学资源:第十一章 内排序.ppt
- 《数据结构》课程教学资源:第十章 查找.ppt
- 《数据结构》课程教学资源:第四章 串.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第一章 概述.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第二章 8086的指念系统.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第三章 汇编语言程序格式.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第四章 基本汇编语言程序设.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第五章 高级汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言》课程电子教案(PPT课件)第六章 32位指令及其编程.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第一到第九章.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十章 存储过程与触发景.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十一章 游标.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十二章 安全管理.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十三章 数据备份与恢复.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十四章 数据庠复制.ppt
- 上海应用技术大学:《SQLServer 2000数据库应用技术》课程教学资源(PPT课件讲稿)第十五章 数据转换.ppt