- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4堆栈及其应用(阅读)
?4.1堆栈的基本概念 4.2 顺序栈及其基本算法 4.3 链栈及其基本运算实现 4.4 栈的应用举例 ?4.1.1 堆栈定义 4.1.2 堆栈的逻辑结构 4.1.3 堆栈的基本运算 定义4.1 堆栈简称栈,是满足下列条件的数据结构: (1) 有限个具有相同数据类型的数据元素的集合,D={ ai | i=1,2,…,n },ai为数据元素。 (2) 数据元素之间的关系R={ ai,ai+1 | ai,ai+1∈D}; (3) a1为栈底元素,an为栈顶元素;入栈时,数据元素按a1,a2,…,an的次序进栈,出栈的第一个元素应为栈顶元素an。 设 栈 S = (a1,a2…an) 则 a1为栈底元素, an为栈顶元素; 若n=0,则为空栈。 4.1堆栈的基本概念 ? 4.2 顺序栈及其基本算法 4.3 链栈及其基本运算实现 4.4 栈的应用举例 ?4.2.1 顺序栈概念及数据类型 4.2.2 顺序栈的基本算法 4.2.1 顺序栈概念及数据类型 ? 4.2.2 顺序栈的基本算法 4.1堆栈的基本概念 4.2 顺序栈及其基本算法 ? 4.3 链栈及其基本运算实现 4.4 栈的应用举例 ?4.3.1 链栈概念及数据类型 4.3.2 链栈的基本算法 4.3.1 链栈概念及数据类型 ? 4.3.2 链栈的基本算法 ? 链栈的运算实现 ? 由于链栈中的结点可以动态生成,所以链栈无栈满状态。 ? top = NULL 时,为空栈。 ? top-data为栈顶元素 4.1堆栈的基本概念 4.2 顺序栈及其基本算法 4.3 链栈及其基本运算实现 ? 4.4 栈的应用举例 应用一、数制转换问题 将一个十进制的整数 N 转换成其它 d 进制的数,方法是将 ( N ÷ d ) 取余数a1,并再将其商与d整除,取余数a2 … …直到商为0。 得到的 d 进制数为: an an-1 … a2 a1 由于最先输出的是 an ,最后输出的是a1 即:最先算出的 最后输出。 我们可以将算出的余数按顺序入栈,而按顺序出栈的即是 d 进制数。 ? 链栈的出栈算法 top a1 a2 ∧ an p datatype data; LinkStack *Pop(LinkStack *top) { LinkStack *p; if (top==NULL) { printf(“under flow\n”); return NULL;} else{data=top-data; p=top; top=top-next; free(p); return top;} } ? 链栈的置空栈算法 在链栈中实现置空栈运算可以通过调用出栈Pop( )函数,将栈中元素依次出栈,释放所有节点所占空间,最终使栈顶指针LS为NULL。算法描述为: LinkStack *InitStack (LinkStack *top){ while(top ! = NULL) top = Pop( top ); return (top); } 链栈实际上是运算受限制的链表。 除置空栈运算InitStack ( )外,其它操作都在表头进行,算法的执行时间与栈的大小无关。即建空栈SetStack ( )、判栈空StackEmpty( )、取栈顶元素GetTop( ) 以及入栈Push( )与出栈Pop( )等算法的时间复杂度均为О(1)。 置空栈运算InitStack ( ),需要将所有元素依次出栈,算法所需时间与栈的大小有关,其时间复杂度为О(n) 。 ? 链栈基本算法性能分析 第4章 栈及其应用 建空栈S 输入 N N=0 n = N%d Push ( S, n) N =N/d N Y N empty(S) = 0 Pop(S) Y void Conversion (SeqStack *S,int n,int d ){ //对于任何一个输入的非负十进制整数n,输出与之等值的d进制数 SetStack(S);//建空栈 if(n0){ //若n为负数
您可能关注的文档
- ch3平面电磁波.ppt
- CH3房地产市场调查与分析(阅读).ppt
- CH3平稳性与功率谱密度.ppt
- Ch3状态图(阅读).ppt
- Ch3硅单晶与硅片加工.ppt
- CH3离散时间信号与离散时间系统.ppt
- CH3第3节条件分布(阅读).ppt
- ch3管理的基本原理(阅读).ppt
- ch3管理研究过程与方法(阅读).ppt
- ch3线性系统时域分析与校正(阅读).ppt
- 土地整理施工设计方案(最全).doc
- 煤矿质量标准化实施细则(修改稿)(最全).doc
- 2025年重庆安全技术职业学院单招语文测试模拟题库及参考答案一套.docx
- 2025年郑州职业技术学院单招(语文)测试模拟题库及完整答案一套.docx
- 2025年郑州电子商务职业学院单招(语文)测试模拟题库新版.docx
- 2025年鄂尔多斯职业学院单招(语文)测试题库精编.docx
- 2025年郑州铁路职业技术学院单招语文测试模拟题库精选.docx
- 2025年郑州理工职业学院单招(语文)测试模拟题库有答案.docx
- 2025年郑州软件职业技术学院单招(语文)测试模拟题库及参考答案1套.docx
- 2025年郑州铁路职业技术学院单招语文测试题库带答案.docx
最近下载
- 2025年档案管理员考试试题 .pdf VIP
- 万源储配煤基地建设可行性研究.pdf VIP
- 2024-2025学年广东省深圳市小升初分班考试数学试卷附答案解析.pdf VIP
- JTG F801-2017 公路工程质量检验评定标准 第一册 土建工程.docx VIP
- 新药临床试验监查—__培训课件.ppt VIP
- 项目4 光伏发电系统运行、维护及故障检修.ppt VIP
- 传染病培训试题及答案.pdf VIP
- (正式版)-B 7692-2012 涂装作业安全规程 涂漆前处理工艺安全及其通风净化.docx VIP
- 现浇箱梁满堂支架(盘扣式)专项施工方案.docx VIP
- 一种自动控制工件落差的防磕碰接料装置.pdf VIP
文档评论(0)