第_3_章_栈与队列.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第_3_章_栈与队列

栈的形式化定义 栈简称为S,是一个二元组 S=(D,R) 其中:D 是数据元素的有限集合 D={ ai | ai ∈ElemSet, i = 1, 2, ..., n, n≥0 } R 是数据元素之间关系的有限集合 数据关系:R1={ ai-1, ai | ai-1, ai∈D, i = 2, ..., n } 约定an 端为栈顶,a1 端为栈底。 队列的形式化定义 队列简称为Q,是一个二元组 Q=(D,R) 其中:D 是数据元素的有限集合 D={ ai | ai ∈ElemSet, i = 1, 2, ..., n, n≥0 } R 是数据元素之间关系的有限集合 数据关系:R1={ ai-1, ai | ai-1, ai∈D, i = 2, ..., n } 约定an 端为队尾,a1 端为队头。 数据结构 第三章 栈和队列 1、栈和队列的定义及特点; 2、栈的顺序存储表示; 3、队列的顺序存储表示;队列的链接存储表示; 4、栈和队列的应用举例。 教学内容 限定仅在表尾进行插入或删除操作。 3.1 栈 3.1.1 抽象数据类型栈的定义 栈的定义 a1 a2 an-1 an … 栈顶 (top) 栈底 (bottom) 出栈 进栈 栈底元素 栈顶元素 栈(stack):线性表 后进先出 (LIFO结构)。 栈顶 (top) 数据对象 ( a1 , a2 , a3 ,……., ai-1 , ai , ai +1,……, an) 栈的接口的定义 Public interface IStackT { int GetLength( ); // 求栈的长度 bool IsEmpty( ); // 判断栈是否为空 void Clear ( ); // 清空操作 void Push (T item ); //入栈操作 T Pop ( ); // 出栈操作 T GetTop();//取栈顶元素 } 3.1.2 栈的存储和运算实现 顺序栈 利用一组地址连续的 存储单元 依次存放自栈底到栈顶的 数据元素,同时附设指针 top 指示栈顶元素在顺序栈中的位置。 top A top B top C top D top E top 空栈 若再进行元 素“出栈”操 作,将产生 “下溢”。 top 栈满 若再进行元 素“入栈”操 作,将产生 “上溢”。 top -1 顺序栈类SeqStackT的实现说明: public class SeqStackT: IStackT { private int maxsize ; // 顺序栈的容量 private T[] data ; // 数组,用于存储顺序栈中的数据元素 private int top; //指示顺序栈的栈顶 基本操作: } 顺序栈的基本操作: int GetLength( ); // 求栈的长度 bool IsEmpty( ); // 判断栈是否为空 void Clear ( ); // 清空操作 void Push (T item ); //入栈操作 T Pop ( ); // 出栈操作 T GetTop();//取栈顶元素 3.2 栈的应用举例 3.2.1 数制转换 十进制数 N 和其他 d 进制数 M 的转换是计算机实现计算 的基本问题,其解决方法很多,其中一个简单算法是逐次除以 基数 d 取余法,它基于下列原理: N = (N div d )*d + N mod d 具体作法为:首先用 N 除以 d,得到的余数是 d 进制数 M 的

您可能关注的文档

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档