第三章栈和队列公共邮箱.ppt

上传人:99****p 文档编号:1441622 上传时间:2019-02-27 格式:PPT 页数:65 大小:957.50KB
下载 相关 举报
第三章栈和队列公共邮箱.ppt_第1页
第1页 / 共65页
第三章栈和队列公共邮箱.ppt_第2页
第2页 / 共65页
第三章栈和队列公共邮箱.ppt_第3页
第3页 / 共65页
第三章栈和队列公共邮箱.ppt_第4页
第4页 / 共65页
第三章栈和队列公共邮箱.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、第三章 栈 和 队列3.1 栈3.2 栈的应用举例*3.3 栈与递归的实现3.4 队列*3.5 离散事件模拟从数据结构的角度看 : 栈、队列和线性表相同从数据类型的角度看 : 栈、队列和线性表不同ListInsert(L, i, e) (1i n+1) ListInsert(S, n+1, e) ListDelete(L, i, e)(1i n)ListDelete(S, n) ana2 a1表头为 栈底 表尾为 栈顶a1a2an栈底栈顶ana2 a1n 只允许在一端插入和删除操作的只允许在一端插入和删除操作的线性表线性表 .n 允许插入和删除的一端允许插入和删除的一端称为称为 栈顶栈顶 (t

2、op), 另一端另一端称为称为 栈底栈底 (base)n 特点特点 : 后进先出后进先出 (LIFO)3.1 栈栈 ( Stack )退栈 进栈a1anan-1topbaseADT Stack 数据对象 : D ai |aiElemSet,i =1,2,.,n, n0 数据关系 : R1 |ai-1,aiD, i=2,.,n 约定 an 端为栈顶, a1 端为栈底 。基本操作 :InitStack(/存储空间初始分配量#define STACKINCREMENT 10;/存储空间分配增量typedef struct SElemType *base; /栈底指针SElemType *top; /

3、栈顶指针int stacksize; /当前已分配的存储空间 ,以元素为单位 SqStack;空栈 :S.base=S.top(初始化状态 )toptopabasebctop detop栈满 :S.top-S.base=S.stacksizebase若栈结构不存在, base为 NULL栈顶指针始终是指在栈顶元素的后面一个位置栈顶指针始终是指在栈顶元素的后面一个位置顺序栈的初始化操作Status InitStack(SqStack if (!S. base) exit(OVERFLOW); / 存储分配失败S.top = S.base ;S.stacksize = STACK_INIT_SIZ

4、E ; / 初始存储容量return OK; / InitStack获取栈顶元素操作Status GetTop(SqStack S, SElemType 否则返回 ERRORif (S.top = S.base) return ERROR;e=*(S.top-1);return OK; /GetTop进栈操作Status Push(SqStack if (!S.base) exit(OVERFLOW); / 存储分配失败S.top =S.base+S.stacksize;S.stacksize +=STACKINCREMENT;*S.top = e; S.top+ ;return OK; /Push

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。