- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 栈和队列 计算机软件技术知识基础教程 .ppt
10.1 栈
10.2 栈的应用
10.3 队列
10.4 队列应用举例 ;第10章 栈 和 队 列;图10.1 栈的示意图; 从图10.1中可以看出,进栈是把数据元素放在栈顶,即最后进栈的数据元素在栈顶,而出栈是把栈顶的数据元素删除。因此,对于栈来说,最后进栈的数据元素最先出栈,故把栈称为后进先出(LIFO-Last In First Out)的数据结构,或先进后出(FILO-First In Last Out)的数据结构。
栈的常用运算有以下五种:
(1) 置空栈——SetNull(S),完成对栈的初始化。
(2) 判断栈是否为空——Empty(S),若栈S为空,则返回真;否则,返回假。; (3) 进栈——Push(S,e),在栈S的栈顶插入数据元素e。
(4) 出栈——Pop(S),删除栈S的栈顶数据元素,并把出栈数据元素返回。
(5) 取栈顶元素——GetTop(S),取栈S的栈顶数据元素,并把数据元素返回。该操作完成后,栈的状态不变。; (2) 判断栈是否为空:在进行出栈操作时,首先必须判断栈不为空,否则会出错。
int EmptyS(struct Stack *s)
{
if (S-Top=0) return (0);
else return (1);
} /* EmptyS */
(3) 进栈:将数据元素E插入栈顶。;struct Stack *PushS(struct Stack *S, datatype E)
{
if (S-Top=maxsize-1)
{ printf (Stack Overflow); /? 上溢现象。?/
return (NULL);
} else
{ S-Top++;
S-elements[S-Top]=E;
}
return (s);
} /* PushS*/; (4) 出栈:首先判断栈是否为空,若空则表示下溢,否则删除栈顶数据元素。; temp=(datatype *)malloc(sizeof (datatype));
*temp= S-elements[S-Top+1];
return (temp);
}
} /* PopS */; (5) 取栈顶元素:只把栈顶元素的值取出,而不调整栈顶指针Top的值。
; *temp= S-elements[S-Top];
return?(temp);
}
} /* GetTopS */
在前面的栈运算中,进栈运算采用Top指针加1后再插入数据元素,若采用先插入数据元素再使Top指针加1,那么以上五种运算该如何实现呢?请读者自行写出算法。
; 对于顺序栈来说,其最大缺点是:当栈的容量不固定时,必须设置栈可容纳最多的数据元素作为栈的容量,这样就会浪费很多存储空间,也可能产生上溢现象。采用链式存储结构就不会产生类似的问题。
栈的链式存储结构称为链栈。它是运算受限的单链表,其插入和删除操作仅在表头进行。链栈定义如下:; 图10.3是链栈示意图。栈顶是top指针,它惟一地确定一个链栈。当top等于NULL时,该链栈为空栈。
下面仅给出链栈的出栈和进栈运算,其他运算请读者自行完成。;图10.3 链栈的示意图;datatype PopL(struct Node *S) /* 出栈 */
{ datatype *X;
if (S==NULL)
{ printf (Stack is underflow);
return (NULL);
} else
{ X=(datatype *)malloc(sizeof (datatype));; * X=S-element;
S=S-next;
return (X);
}
} /* PopL */
;10.2 栈 的 应 用;int Fib (int n)
{ int fib;
if (n==0) fib=0;
else if (n==1) fib=1;
else fib=Fib(n-1)+Fib(n-2);
return (fib);
} /* Fib */
您可能关注的文档
- 社会主义经济理论2(本科政经,体制改革) 第六章 产权理论和 与我国的产权制度改革.ppt
- 社会主义经济理论4(本科政经,宏观运行) 第十三章 国民收入分配和 与社会保障制度.ppt
- 社会主义经济理论5(本科政经,经济的发展) 十六章 社会主义社会的经济增长与经济周期.ppt
- 社会保险相关管理实训平台.ppt
- 社会保障学课件 第二章 社会保障的产生与的发展.ppt
- 社会变迁和 与灾害法 《法律社会学》授课材料ppt.ppt
- 社会和 与职业道德课件 第二章 计算机的社会问题.ppt
- 社会学文化知识(概论).ppt
- 社会学社会学 第九章 -环境和 与风险PPT2013.1.20精简.ppt
- 社会学社会学第六章社会互动和 与社会网络.ppt
- 第10章 植物的磷素营养和 与磷肥施用(修改) 《土壤肥料学》课件.ppt
- 第10章 沟通礼仪在护理知识工作中的应用 护理知识礼仪与人际沟通课件.ppt
- 第10章 用户工作环境的管理 计算机网络实用相关知识 ppt.ppt
- 第10章 相关知识对象的应用 《多媒体CAI课件设计与制作》电子教案 课件.ppt
- 第10章 相关管理表.ppt
- 第10章 简单网络相关管理协议 计算机网络Tcpip协议课件.ppt
- 第10章 粗糙集理论 数据挖掘:概念与技术知识 1.ppt
- 第10章 编码与译码 现代DSP技术知识 .ppt
- 第10章 网络安全技术知识 四级网络工程师PPT 课件.ppt
- 第10章 网络安全技术知识 计算机等级考试四级网络工程师课件.ppt
最近下载
- 食品企业财务管理专题研究:成本控制.docx VIP
- DB3210T 1206-2025 互联网医院诊疗服务管理规范.pdf VIP
- 2024年新改版人教版七年级上册生物全册精编知识点(新教材).doc
- 励磁培训书(第4版最终版)精品.docx
- 2025年【中级消防设施操作员(考前冲刺)】考试题及答案.pdf VIP
- 内科学肺栓塞教案.ppt VIP
- 2025杭州市房屋租赁合同(官方范本).docx VIP
- 2025年度专业技术人员继续教育公需科目考试题(附答案).doc VIP
- 基础会计:原理、实务、案例、实训(第七版)课件 第1章 总论.pptx
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
文档评论(0)