- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
01【数制转换】
目录02【括号匹配的检验】
CONTENTS
03【表达式求值】
01数制转换
数制转换
问题:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。
算法基于原理:“除基取余法”即:除以基数取余数,逆序排列。
例如:(1348)10=(2504)8,其运算过程如下:
NNdiv8Nmod8
计13481684输
算168210出
顺2125顺
序
202序
数制转换
2.算法描述
//对于输入的人一个非负十进制整数,打印输出与其等值的八进制数
voidconversion(){
InitStack(S);//构造空栈
scanf(%d,N);
while(N){//将所有余数依次入栈
Push(S,N%8);
N=N/8;
}
while(!StackEmpty(S)){//将所有余数依次出栈,打印输出
Pop(S,e);
printf(%d,e);
}
}//conversion
02括号匹配的检验
括号匹配的检验
即:检查表达式中的括号是否正确匹配。
如:括号匹配{[()]},((){}),()
括号不匹配((),()],([)]
分析:每个左括号都“期待”对应的右括号,
若匹配成功则可以消去。
因此,检验括号匹配的方法可以用“期待的急迫程
度”来描述。
括号匹配的检验
算法思想:
初始化一栈
依次读入表达式中的字符
是左括号则入栈;
是右括号时,若栈空,则不匹配(右括号太多);否则,
如果栈顶元素与该右括号匹配,则出栈,否则不匹配
读到表达式结束后,若栈为空,则匹配,否则不匹配(左
括号太多)。
//
boolmatch()
2.算法描述
{InistStack(S);
read(c);
while(c!=EOF){
switch(c){
case(,[,{:
Push(S,c);//若是左括号则入栈
break;
case),],}:
if(StackEmpty(S))returnfalse;
Pop(S,e);
if(c==)e!=()returnfalse;
if(c==]e!=[)r
您可能关注的文档
- (15)--2.室内设计相关学科.ppt
- (15)--4.1.3 宏量营养素-4.1 碳水化合物-4.1.3.ppt
- (15)--08讲 八进制与十六进制.ppt
- (15)--第2章线性表第3讲-顺序存储结构算法设计示例.pdf
- (15)--第5章 图-单源最短路径.ppt
- (15)--第三章第二节顺序栈的基本操作.pdf
- (16)--1.2.2线路和站址的勘察.ppt
- (16)--2.家具布置室内设计原理.ppt
- (16)--4.1.4 宏量营养素-4.1 碳水化合物-4.1.4.ppt
- (16)--08讲 数制与数据单位2150.doc
- 【化学】涉及表格、图像的化学方程式计算专题练习---2024-2025学年人教版化学九年级上册.docx
- 江苏省徐州市邳州市2024届中考考前最后一卷语文试卷含解析 .pdf
- 江苏省南京市建邺区2023-2024学年八年级上学期期末语文试题(含答案).pdf
- 以问题为导向的数学教学改革探索教学研究课题报告.docx
- 互动式阅读在小学语文课堂中的应用研究教学研究课题报告.docx
- 学生心理发展的不同阶段与全面发展的关系教学研究课题报告.docx
- 未成年人对生活压力的心理适应性研究教学研究课题报告.docx
- 江苏无锡梁溪区四校联考2024届中考英语对点突破模拟试卷含答案.pdf
- 小学语文课外阅读对学生素养提升的作用教学研究课题报告.docx
- 高中学生化学实验观察能力的提升探索教学研究课题报告.docx
文档评论(0)