- 1、本文档共113页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
栈和队列;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;3.1栈的表示与实现;(5)取栈顶元素。
intGetTop(LinkStacktop,DataType*e)
/*取栈顶元素。取栈顶元素成功返回1,否则返回0*/
{
LStackNode*p;
p=top-next; /*指针p指向栈顶结点*/
if(!p)/*如果栈为空*/
{
printf(“栈已空”);
return0;
}
*e=p-data; /*将p指向的结点元素赋值给e*/
return1;
};3.1栈的表示与实现;3.1栈的表示与实现;3.1.1数制转换
【例3.1】利用栈的基本操作实现将十进制数1568转换为对应的八进制数。
【分析】进制转换是计算机实现计算的基本问题。根据我们掌握的C语言知识,我们可以采用辗转相除法实现将十进制数转换为八进制数。将1568转换为八进制数的过程如图所示。;转换后的八进制数为(1568)8。每次不断利用被除数除以8得到商数后,记下余数,又将商数作为新的被除数继续除以8,直到商数为0为止,把得到的余数排列起来就是转换后的八进制数。依据此原理,得到十进制数N转换为八进制的算法如下:
(1)将N除以8,记下其余数;
(2)判断商是否为零,如果为零,结束程序;否则,将商送N,转到(1)继续执行。
得到的位序正好与八进制数的位序相反,这恰好可利用栈的“后进先出”特性,先把得到的余数序列放入栈保存,最后依次出栈得到八进制数。;;3.2.2行编辑程序
试利用栈的“后进先出”思想,编写一个行编辑程序,前一个字符输入有误时,输入’#’消除???当输入的一行有误时,输入’@’消除当前行的字符序列。
voidLineEdit()
{
SeqStackS;charch;
DataTypee;DataTypea[50];
inti,j=0;
InitStack(S);
printf(输入字符序列(‘#’使前一个字符无效,’@’使当前行的字符无效).\n);
ch=getchar();
while(ch!=\n)
{
;3.2栈的应用;3.2.3求算术表达式的值
表达式求值是程序设计编译中的基本问题,它的实现是栈应用的一个典型例子。本节给大家介绍一种简单并广为使用的算法,被称之为算符优先法。计算机编译系统利用栈的“后进先出”特性把人们便于理解的表达式翻译成计算机能够正确理解的表示序列。
一个算术表达式是由操作数、运算符和分界符组成。为了简化问题,我们假设算术运算符仅由加、减、乘、除四种运算符和左、右圆括号组成。;例如,一个算术表达式为
a-(b+c*d)/e
这种算术表达式中的运算符总是出现在两个操作数之间,这种算术表达式被称为中缀表达式。计算机编译系统在计算一个算术表达式之前,要将中缀表达式转换为后缀表达式,然后对后缀表达式进行计算。后缀表达式就是算术运算符出现在操作数之后,并且不含括号。
计算机在求算术表达式的值时分为两个步骤:
(1)将中缀表达式转换为后缀表达式;
(2)依据后缀表达式计算表达式的值。;1.将中缀表达式转换为后缀表达式
要将一个算术表达式的中缀形式转化为相应的后缀形式,首先了解下算术四则运算的规则。算术
您可能关注的文档
- 数据结构(第2版)(C语言实现)课件:串、数组和广义表.pptx
- 数据结构(第2版)(C语言实现)课件:排序.pptx
- 数据结构(第2版)(C语言实现)课件:树和二叉树.pptx
- 数据结构(第2版)(C语言实现)课件:线性表.pptx
- 数据结构(第2版)(C语言实现)绪论.pptx
- 数据结构案例教程课件:查找.pptx
- 数据结构案例教程课件:排序.pptx
- 数据结构案例教程课件:图.pptx
- 数据结构案例教程课件:线性表.pptx
- 数据结构案例教程绪论.pptx
- 讲稿:深入理解“五个注重”把握进一步深化改革统筹部署以钉钉子精神抓好落实.pdf
- 副市长在2025年全市医疗工作会议上的讲话.docx
- 2025年市县处级以上党委(党组)理论学习中心组专题学习计划.docx
- 市民族宗教事务局党组书记、局长2024年度民主生活会个人对照检视发言材料.docx
- 烟草局党组书记2024年度抓基层党建工作述职报告.docx
- (汇编)学习2025年全国教育工作会议精神心得体会发言心得感悟.pdf
- 汇编学习领会在二十届中纪委四次全会上的重要讲话精神心得体会.pdf
- 在2025年镇安全生产、消防安全和生态环境保护第一次全体会议上的讲话提纲.docx
- 书记干部座谈会上的讲话+纪委全会上的讲话.pdf
- 党课:从毛泽东诗词中感悟共产党人初心使命.docx
最近下载
- 在创新中传承在传承中创新2025春季开学典礼校长发言四篇.docx VIP
- 高考英语阅读理解100篇.doc VIP
- 2025年二建机电实务押题班模拟试卷 .pdf VIP
- 《汽车制动排放测试方法(制动测功机法)第2部分:测试系统》标准征求意见稿.docx
- 自然拼读 phonics kids book3双字母组合发音.pdf
- 高考英语阅读理解100篇.pdf VIP
- 2025年公务员考试申论试题与参考答案.docx VIP
- 2025年江苏省初中学生化学素质与实验能力竞赛预赛试题(含答案).pdf VIP
- 中国漆包线行业市场发展现状及前景趋势与投资分析研究报告.docx
- 2024年安康职业技术学院单招职业倾向性测试题库(500题)含答案解析.docx VIP
文档评论(0)