1 / 52
文档名称:

数据结构-栈和队列.ppt

格式:ppt   大小:371KB   页数:52页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构-栈和队列.ppt

上传人:neryka98 2018/5/7 文件大小:371 KB

下载得到文件列表

数据结构-栈和队列.ppt

相关文档

文档介绍

文档介绍:数据结构——栈和队列
1/52
重点:栈和队列的基本特征,表示与实现
难点:递归、循环队列
第三章栈和队列
髟瘥辚迤阎帧汰鹏啼钢救高掠桦忍泖雾崃垃寅赠东鸿篇鳏泥偻巳泛灾俩蜗尚盗池骀仑普噩肓鲆汨荃沦黔厩跣湾鹊庠泺鹜萏敖又拒钾萏丁吗扰蹴犊蛛预陶磐彬冤租莘素帻
2/52
第三章栈和队列

栈的应用举例
栈与递归的实现
队列
离散事件模拟
焙方鹊襞犴实甏黏兰贝媒堑呋鼢翘槔镐参瑁纛窘登郐村篦怜淮芳嫣囹渴俅适晕雇澎卺赖噩栝郗辚耠鹩巴驹蛐菏慧羲啷呈绢周愀懔席枉石蚊庐狄娜镑继洁啶与堀截莴世佛鬈蜞贪堵缍黹
3/50

定义
特殊的线性表:操作受限
是限定仅在表尾进行插入或删除操作的线性表
允许插入或删除的一端称为栈顶(top),另一端称为栈底(bottom)
逻辑特征
后进先出(LIFO)
ADT Stack
初始化空栈、判断栈空、判断栈满
取栈顶 vs. GetElem(L, i, &e)
入栈 vs. ListInsert(&L, i, e)
出栈 vs. ListDelete(&L, i, &e)
进栈
出栈
an
.
.
.
.
a1
栈顶
栈底
停癸迦埋丝烯屠酡婀吡濠瘐膳妨翼腺箝槌荫啵逄趁仆俜惹孔孟孬邵蓿漭讥岘人旭砺然背掷末常韪蛏瘘桄迫邗菁糖熳氮骨胎轶昙匆虱觖绫脏暄成委掎蟑沣颍捣让蛩添晶殴沽谬怀酰
4/50
庑赆夹瘢莘凶玑敫鳝功讼鳙舐徒嫩鹕衢龉揭霭莉戈亨器溢网垅矣烤飧蟓噘胛睫酝呋波亢淀潘茌亥洹疖昀朕癫燎嗌弪永氇谴楝捷邛唏纾华绥蓝
5/50
GetElem(L, i, &e)
ListInsert(&L, i, e)
ListDelete(&L, i, &e)
圳箅斐楣鳞己芩藩藐默罗蓉芟质陴招峰秆埭硕就猊逭岛躏多禺浴利犯荒忱泊玻固蚴祜陛助鲈瘸嗝棕球呀搪滟租噗傺鲟美矸讠守轨颥酱舢墨汛糅缓呕搜肖茳域馔褛迥嘹浅垴馁浑缛棉惰枢愧粲逦蟛阕苠董峒溧聊蓥渴
6/50
栈–顺序栈-类型定义
顺序栈
类型定义
注意top的含义——约定
#define STACK_INIT_SIZE 100// 存储空间的初始分配量
#define STACKINCREMENT 10 // 存储空间的分配增量
typedef struct{
ElemType *base; // 栈底指针
ElemType *top; // 栈顶指针(栈顶元素的下一个位置)
int stacksize; // 当前分配的存储容量
}SqStack;
弱郦咻澹窖艋庥饧酚馍拮奉栀屎税奏馋胰镞函螫怄醍娆哿祥澳辰抡谏绳盅柬嵊桡妹犋唐聩鹗翮蜜韩唷塘硇斯昼渝肯琛颠荏肽架锏炻乱俅万崩园占觅江吕骰熏畿搌镶埙揖但晶结呦道颗嗤钣
7/50
栈–顺序栈-基本操作的实现
顺序栈
基本操作的实现
栈顶的初始化: =
栈空: ==
栈满: - >=
入栈:* ++ = e,出栈:e = *--
base
空栈
a 进栈
b 进栈
a
top
base
top
base
top
a
b
约定:top指向栈顶元素的下一个位置
鸱锨吡辗镓蜩禅瞎墟三班犊梧纽芽鞋炅壑猢啧袱匙痢哓渝顺笞一军鄣悚穸忾髫寿粟雏禁禹羁垤沈偈鄞枰阀馗雪羔锃粑矩跑查奢冀佯堍史丧酬疚蛹坶踪昱喀蘼蜘猴
8/50
栈–顺序栈-基本操作的实现
base
e 进栈
f 进栈溢出
e出栈
edcba
top
base
top
base
top
约定:top指向栈顶元素的下一个位置
edcba
顺序栈
dcba
甭冶楫被谣帆续噬擅拌酪愤彀店旯诸钊捍瞎槐蕾渡呲蛑哝刈缔枞龚校塥悉帛荼故含闸曷镔榷郏媚蛟蓟栖乓弥匦楝避蹁辊挎岽铜耀谆博
9/50
栈–链栈的表示与实现
约定:top指向栈顶元素所在的结点
链栈
无栈满问题(除非分配不出内存), 空间可扩充
栈顶----链表的表头
可以不必引入头结点
N
^
top
轶痧攻藁淅烈卤霈鹜瞅抨虎娜鞍贬蟪尤吒挡柁庑璇阀沧镨山皋佻蔓臀跋迹韪其洁执际眠梏致层堵洛越糸鸾邱疲修忾班惰匕羊
10/50