第三章-栈和队列.ppt

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

1、栈 队列 递归第三章栈和队列1栈 ( Stack )定义 :是限定仅在表尾进行插入或删除操作的线性表。允许插入和删除的一端称为栈顶 (top),另一端称为栈底 (bottom)特点: 后进先出 (LIFO)a1topbottoman.进栈 出栈2栈的抽象数据类型定义为: ADT Stack 数据对象: D ai|aiElemSet,i=1,2,.,n, n0 数据关系: R1 | ai-1 , ai D, i=2,.,n 约定 an端为栈顶 ,a1端为栈底。基本操作:. ADT Stack 栈的抽象数据类型栈的抽象数据类型 ( C语言)语言)template class Stack publi

2、c:Stack ( int sz = 10 ); /构造函数void Push ( Type /进栈Type Pop ( ); /出栈Type GetTop ( ); /取栈顶元素void MakeEmpty ( ); /置空栈int IsEmpty ( ) const; /判栈空否int IsFull ( ) const; /判栈满否栈的抽象数据类型栈的抽象数据类型 ( C+)栈的表示和实现顺序栈: 栈的顺序存储结构,利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,指针 top指向栈顶元素在顺序栈中的下一个位置,base为栈底指针,指向栈底的位置。base空栈 a 进栈 b 进栈a

3、 abtop basetopbasetop5top topabcdee 进栈abcdef 进栈溢出abde 出 栈cbase basebasetop6顺序栈的定义及存储表示#define STACK_INIT_SIZE 100/栈存储空间的初始分配量#define STACKINCREMENT 10/ 栈存储空间的分配增量typedef structSElemType *base;/栈空间基址称为栈底指针,指向栈底位置SElemType *top /栈顶指针 ,约定栈顶指针指向栈顶元素的 /下(后面)一个位置; int stacksize; /当前分配的栈空间大小/(以 sizeof(SEle

4、mType)为单位)SqStack;/ SqStack:: 结构类型名7初始化操作参数: S是存放栈的结构变量功能:建立一个空栈 SStatus InitStack_Sq(SqStack /为顺序栈动态分配存储空间if (! S. base) exit(OVERFLOW); /存储分配失败S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK; /InitStack_Sq8取栈顶操作功能:取栈顶元素,并用 e返回Status GetTop_Sq(SqStack S, SelemType /若栈为空e = * (S.top-1);return OK;/GetTop_Sq9进栈操作 Push功能:元素 e进栈Status Push(SqStack if (! S. base) exit(OVERFLOW); /存储分配失败S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT; *S.top+=e; /元素 e 插入栈顶,修改栈顶指针return OK; /Push10

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

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

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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