您所在位置: 网站首页 / 文档列表 / 数据结构与算法 / 文档详情
数据结构 类Pascal版 严蔚敏 chapt3-兰州大学信息院.ppt 立即下载
上传人:yy****24 上传时间:2024-09-08 格式:PPT 页数:42 大小:285KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构 类Pascal版 严蔚敏 chapt3-兰州大学信息院.ppt

数据结构类Pascal版严蔚敏chapt3-兰州大学信息院.ppt

预览

免费试读已结束,剩余 32 页请下载文档后查看

15 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三章栈和队列一、栈的概念栈(stack)是插入和删除操作限定在表尾进行的线性表。栈的逻辑表示为:S=(a1,a2,…,an)表尾元素an称为栈顶(top)表头元素a1称为栈底(bottom)不含元素的空表称为空栈栈的运算特性是后进先出(LastInFirstOut——LIFO)或先进后出(FirstInLastOut——FILO)3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.1栈的表示和实现3.2栈的应用--表达式求值3.2栈的应用--表达式求值3.2栈的应用--表达式求值3.2栈的应用--表达式求值3.2栈的应用--表达式求值3.3递归过程例:计算两个非负整数a*b的算法1.递归方式:a*b=b+(a-1)*bFUNCmul1(a,b:integer):integer;IFa=0THENRETURN(0)ELSERETURN(b+mul1(a-1,b))ENDF;{mul1}3.3递归过程3.3递归过程算法思想:当n=1:只需将该圆盘从X移到Z即可;当n>1:若能将压在n号盘上的n-1个圆盘按规则移至Y,然后把n号盘从X移到Z上,最后再将Y上的n-1个圆盘按规则移至Z上。原问题为:hanoi(n,X,Y,Z)化简为:hanoi(n-1,X,Z,Y)move(X,n,Z)把X上的n号盘移到Z上hanoi(n-1,Y,X,Z)3.3递归过程3.3递归过程一、队列的概念队列(queue)是限定在一端插入,另一端删除的线性表。允许插入的一端叫队尾(rear),允许删除的一端叫队头(front),不含元素的空表称为空队列队列的运算特性是先进先出(FirstInFirstOut--FIFO)二、队列的基本运算INIQUEUE(Q)初始化操作,设置一个空队列EMPTY(Q)判定队列是否为空函数(true/false)ENQUEUE(Q,x)入队列操作,队尾插入元素xDLQUEUE(Q)出队函数(删除)GETHEAD(Q)取队头元素函数CLEAR(Q)队列置空操作CURRENT-SIZE(Q)求队列Q当前元素个数三、队列的链式存储结构——链队列1.存储结构链队列需要队头和队尾两个指针来确定。TYPEqueueptr=queuenodequeuenode=RECORDdata:elemtp;next:queueptrEND;linkedquetp=RECORDfront,rear:queueptrEND;给链队列添加个头结点,并令头指针指向头结点。链队列为空时,头尾指针均指向头结点即q.front=q.rear(且q.front.next=NIL)2.出队算法FUNCdl_linkedque(VARq:linkedquetp):elemtp;IFq.front=q.rearTHENRETURN(NULL)ELSE[s:=q.front↑.next;q.front↑.next:=s↑.next;IFs↑.next=NILTHENq.rear:=q.front;x:=s↑.data;dispose(s);RETURN(x)]ENDF;{dl_linkedque}删除时的三种情形:a.删除前已空;b.删除前只有一个结点,删除后为空队列;c.其他情形(删除前结点数>1)3.入队算法PROCen_linkedque(VARq:linkedquetp;x:elemtp);new(p);p↑.data:=x;p↑.next:=NIL;q.rear↑.next:=p;q.rear:=pENDP;四、队列的顺序存储结构1.一般顺序存储结构用一个向量来存放队列元素,并用两个指针来指示队头和队尾。并约定:头指针sq.front总是指向队头元素的前一个位置;尾指针sq.rear指向队尾元素。CONST=…;TYPEsequeuetp=RECORDelem:ARRAY[1..maxsize]0Felemtp;front,rear:0..maxsizeEND;初始时:sq.front=sq.rear=0空队列条件:sq.front=sq.rear出队时:IFsq.rear=sq.frontTHENRETURN(NULL)ELSE[sq.front:=sq.front+1;RETURN(sq.elem[sq.front])]入队时:IFsq.rear=maxsizeTHENERROR(`队满`)ELSE[sq.rear:=sq.rear+1;sq.elem[sq.r
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

数据结构 类Pascal版 严蔚敏 chapt3-兰州大学信息院

文档大小:285KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用