下载此文档

济南大学数据结构 第三章.ppt


文档分类:高等教育 | 页数:约55页 举报非法文档有奖
1/55
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/55 下载此文档
文档列表 文档介绍
济南大学数据结构 第三章.ppt第三章栈和队列
栈和队列是两种重要的线性结构
栈和队列是操作受限的线性表


排队买票
羊肉串

如何理解?


队列

栈的定义
栈是限定仅在表尾(栈顶)进行插入或删除操作的线性表。
通常,表头端称为栈底,表尾端称为栈顶。
出栈
进栈
a1为栈底元素
an为栈顶元素
按a1、a2…、an顺序进栈
按an…、 a2、a1顺序出栈
进栈、出栈均在表尾(栈顶)进行
a1
a2
an
. . .
表头
表尾
栈底
栈顶
栈称为后进先出线性表(LIFO)
栈的抽象数据类型的定义
InitStack( &S )
结果: 构造一个空栈 S。
数据对象: D = { ai | ai ∈ElemSet,i = 1, 2, …, n }
数据关系: R1 = { < ai-1, ai > } ;约定a1为栈底,an为栈顶。
基本操作:
ADT Stack {
} ADT Stack
DestroyStack( &S )
结果: 销毁栈 S。
条件: 栈 S 已存在。

主要基本操作包括:
StackIsEmpty ( S )
StackLength ( S )
GetTop ( S,&e )
Push ( &S,e )
Pop ( &S,&e )
StackTraverse ( S,visit() )
ClearStack( &S )
区别?
栈的表示和实现
1. 顺序栈
顺序栈;链式栈。
base
top
栈底指针——base
栈顶指针——top
取决于数据在计算机中存储方式!
A
B
C
栈容量
注意!
指向栈底元素
指向栈顶元素的下一个元素
# define STACK_INIT_SIZE 100
# define STACKINCREMENT 10
typedef struct {
SElemType * base ;
SElemType * top ;
int stacksize ;
} SqStack ;
三元组
SqStack S ;



*
*
空栈
A
B
C


D
E
满栈


如何判定?
==
A
B
C


栈中有三个元素
SqStack S
如何判定?
- ==
= ( SElemType * ) malloc
( STACK_INIT_SIZE * sizeof(SElemType) );
if ( ! ) exit(OVERFLOW) ;
= ;
= STACK_INIT_SIZE ;
return OK ;
Status InitStack ( SqStack &S ) {
}
栈的初始化
=
初始化为一个空栈
. . . . . .
100
取栈顶元素
if ( == ) return ERROR ; //空栈
e = * ( – 1 ) ;
return OK ;
Status GetTop ( SqStack S ,SElemType &e ) {
}
A
B
C


- 1

济南大学数据结构 第三章 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数55
  • 收藏数0 收藏
  • 顶次数0
  • 上传人dzzj200808
  • 文件大小424 KB
  • 时间2017-10-11