- 1
- 0
- 约5.94千字
- 约 29页
- 2018-06-03 发布于上海
- 举报
栈应用
例一、 数制转换 算法基于原理: N = (N div d)×d + N mod d 第1页/共29页 例如:(1348)10 = (2504)8 ,其运算过程如下(除8取余法): 计算顺序 输出顺序 1348 8 8 8 8 168 4 21 0 2 5 0 2 商 余数 第2页/共29页 void conversion () { InitStack(S); scanf (%d,N); while (N) { Push(S, N % 8); //余数入栈 N = N/8; //商 } while (!StackEmpty(S)) { Pop(S,e); printf ( %d, e ); } } // conversion 第3页/共29页 例二、 括号匹配的检验 假设在表达式中 ([]())或[([ ][ ])] 等为正确的格式, [( ])或([( ))或 (( )]) 均为不正确的格式。 则 检验括号是否匹配的方法可用 “期待的急迫程度”这个概念来描述。 第4页/共29页 分析可能出现的不匹配的情况: 到来的右括弧非是所“期待”的; 例如:考虑下列括号序列: [ ( [ ] [ ] ) ] 1 2 3 4 5 6 7 8 到来的是“不速之客”; 直到结束,也没有到来所“期待”的括弧; 第5页/共29页 算法的设计思想: 1)凡出现左括弧,则进栈; 2)凡出现右括弧,首先检查栈是否空 若栈空,则表明该“右括弧”多余 否则和栈顶元素比较, 若相匹配,则“左括弧出栈” 否则表明不匹配 3)表达式检验结束时, 若栈空,则表明表达式中匹配正确 否则表明“左括弧”有余 第6页/共29页 Status matching(string exp) { int state = 1; while (i=Length(exp) state) { switch of exp[i] { case 左括弧:{Push(S,exp[i]); i++; break;} case”)”: { if(NOT StackEmpty(S)GetTop(S)=“(“ {Pop(S,e); i++;} else {state = 0;} break; } … … } if (StackEmpty(S)state) return OK; …... 第7页/共29页 例三 背包问题(P70) 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …, wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使wi1+wi2+…+wik=T,要求找出所有满足上述条件的解。 例如:当T=10,各件体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)和(3,5,2)。 使用算法:回溯法。 使用数据结构:栈。 读懂P70图4.4: 各件下标:{0,1,2,3,4,5} 对应体积:{1,8,4,3,5,2} 图中所示为下标,需与对应的体积相印证。 第8页/共29页 0,1 0,1 1,8 0,1 2,4 3,3 5,2 物品体积:(1,8,4,3,5,2)。背包总体积10。 0,1,2,3,4,5 0,1 2,4 4,5 0,1 2,4 5,2 0,1 3,3 4,5 0,1 3,3 5,2 0,1 4,5 5,2 0,1 4,5 5,2 编号 体积 0,8 5,2 2,4 3,3 5,2 2,4 4,5 2,4 5,2 3,3 4,5 5,2 3,3 5,2 4,5 5,2 5,2 第9页/共29页 限于二元运算符的表达式定义: 表达式 ::= (操作数) + (运算符) + (操作数) 操作数 ::= 简单变量 | 表达式 简单变量 :: = 标识符 | 无符号整数 例四、 表达式求值 第10页/共29页 表达式的三种标识方法: 设 Exp = S1 + OP + S2 则称 OP + S1 + S2 为前缀表示法 S1 + OP + S2 为中缀表示法 S1 + S2 + OP 为后缀表示法 第11页/共29页 例如: Exp = a ? b +
您可能关注的文档
最近下载
- 建筑室内施工图深化设计梁佳慧建筑工程系57课件讲解.pptx VIP
- 2024年世界职业院校技能大赛高职组“市政管线(道)数字化施工组”赛项考试题库资料.pdf
- 1.1 搭建生命体的“积木”(课件)-五年级科学下册(苏教版).pptx VIP
- 三年级数学面积应用题专项练习题.doc VIP
- 【CNAS CL01 2018内部管理评审报告】 2018年IEC17025 检测和校准实验室能力认可准则管理体系审核资料.docx VIP
- 2025年房地产经纪人房产税与相关税种(城镇土地使用税、契税)辨析专题试卷及解析.pdf VIP
- 空天科技机器征途.ppt
- 第六章 人类与土壤圈.doc VIP
- 地震演练总结通用5篇.doc VIP
- 建筑室内施工图深化设计梁佳慧建筑工程系36课件讲解.pptx VIP
原创力文档

文档评论(0)