教育部—微软精品课程建设项目 第三章栈和队列 南京航空航天大学数据结构课题组版权所有
第三章 栈和队列
教育部—微软精品课程建设项目 通常称,栈和队列是限定插入和删除 只能在表的“端点”进行的线性表。 线性表 栈 队列 Insert(L, i, x) Insert(s, n+1, x)Insert(Q, n+1, x) 1<i<n+1 Delete(L, i) Delete(s, n) Delete(Q, 1) 1<i<n 栈和队列是两种常用的数据类型 南京航空航天大学数据结构课题组版权所有
通常称,栈和队列是限定插入和删除 只能在表的“端点”进行的线性表。 线性表 栈 队列 Insert(L, i, x) Insert(S, n+1, x) Insert(Q, n+1, x) 1≤i≤n+1 Delete(L, i) Delete(S, n) Delete(Q, 1) 1≤i≤n 栈和队列是两种常用的数据类型
教育部—微软精品课程建设项目 3.1栈的类型定义 3.2栈的应用举例 33栈类型的实现 34队列的类型定义 35队列类型的实现 南京航空航天大学数据结构课题组版权所有
3.1 栈的类型定义 3.2 栈的应用举例 3.3 栈类型的实现 3.4 队列的类型定义 3.5 队列类型的实现
教育部—微软精品课程建设项目 3.1栈的类型定义 ADT Stack i 数据对象: D={a1|a∈ ElemNet,i=-1,2,…,n,n>0} 数据关系: R1={<a1,a1a11,a1∈D,i=2,…,n} 约定an端为栈顶,a1端为栈底。 基本操作 3 ADT Stack 南京航空航天大学数据结构课题组版权所有
3.1 栈的类型定义 ADT Stack { 数据对象: D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } 数据关系: R1={ | ai-1 , ai∈D, i=2,...,n } 约定an 端为栈顶,a1 端为栈底。 基本操作: } ADT Stack
教育部—微软精品课程建设项目 InitStack( &S) Destroy Stack(&S) StackLength(S StackEmpty(s) GetTop(s, &e) ClearStack(&s) Push(&s, e) Pop(&s, &e) StackTravers(s, visito) 扇京航航天大学数握常题组版引
InitStack(&S) DestroyStack(&S) ClearStack(&S) StackEmpty(s) StackLength(S) GetTop(S, &e) Push(&S, e) Pop(&S, &e) StackTravers(S, visit())
教育部—微软精品课程建设项目 Initstack(&s) 操作结果:构造一个空栈S。 DestroyStack( &S) 初始条件:栈S已存在 操作结果:栈S被销毁。 南京航空航天大学数据结构课题组版权所有
InitStack(&S) 操作结果:构造一个空栈 S。 DestroyStack(&S) 初始条件:栈 S 已存在。 操作结果:栈 S 被销毁
教育部—微软精品课程建设项目 StackEmpty(s) 初始条件:栈S已存在。 操作结果:若栈S为空栈, 则返回TRUE,否则FALE 南京航空航天大学数据结构课题组版权所有
StackEmpty(S) 初始条件:栈 S 已存在。 操作结果:若栈 S 为空栈, 则返回 TRUE,否则 FALE
教育部—微软精品课程建设项目 StackLength(S) 初始条件:栈S已存在。 操作结果:返回S的元素个 数,即栈的长度 南京航空航天大学数据结构课题组版权所有
StackLength(S) 初始条件:栈 S 已存在。 操作结果:返回 S 的元素个 数,即栈的长度
教育部—微软精品课程建设项目 GetTop(s, &e) 初始条件:栈S已存在且非空 操作结果:用e返回S的栈顶 元素。 1a2 南京航空航天大学数据结构课题组版权所有
GetTop(S, &e) 初始条件:栈 S 已存在且非空。 操作结果:用 e 返回 S 的栈顶 元素。 a1 a2 a … … n
教育部—微软精品课程建设项目 ClearStack(&S) 初始条件:栈S已存在。 操作结果:将S清为空栈。 南京航空航天大学数据结构课题组版权所有
ClearStack(&S) 初始条件:栈 S 已存在。 操作结果:将 S 清为空栈