摘要: 【练习3.21】编写仅用一个数组而实现两个栈的例程。除非数组的每一个单元都被使用,否则栈例程不能有溢出声明。Answer:很简单,一个栈从数组头起,一个栈从数组尾起,分别保留左右栈头索引。如left=5则表示array[0]~array[4]为左栈元素,right=7则表示array[8]~arra... 阅读全文
posted @ 2015-03-20 23:32 猫薄荷喂狗 阅读(1160) 评论(0) 推荐(0)
摘要: 【练习3.20】a.编写一个程序将中缀表达式转换为后缀表达式,该中缀表达式含括号及四则运算。b.把幂操作符添加到你的指令系统中去。c.编写一个程序将后缀表达式转化为中缀表达式。Answer:花了好大力气把a,b就放一起写好了,终于知道为啥说编译原理难了,就这么简单的句法分析也好坑爹。c真的不打算写了... 阅读全文
posted @ 2015-03-20 10:17 猫薄荷喂狗 阅读(492) 评论(0) 推荐(1)
摘要: 【练习3.19】编写一个程序计算后缀表达式的值。Answer:计算的方法书上说得很明白了,看代码行,没写错误检测【因为懒】。测试代码: 1 #include 2 #include "stack.h" 3 using namespace std; 4 using namespace stack; 5... 阅读全文
posted @ 2015-03-20 04:02 猫薄荷喂狗 阅读(476) 评论(0) 推荐(0)
摘要: 【练习3.18】用下列语言编写检测平衡符号的程序a.Pascal ( begin/end, ( ), [ ], { } )。b.C语言( /* */, ( ), [ ], { })。c.解释如何打印出错信息Answer:a和b本质是一样的,就写了b小题即C语言的检测。基本思想就是用栈,除了注释符号有... 阅读全文
posted @ 2015-03-20 01:50 猫薄荷喂狗 阅读(953) 评论(0) 推荐(0)
摘要: 【练习3.17】不同于我们已经给出的删除方法,另一种是使用懒惰删除的方法。为了删除一个元素,我们只标记上该元素被删除的信息(使用一个附加的位域)。表中被删除和非被删除的元素个数作为数据结构的一部分被保留。如果被删除元素和非被删除元素一样多,我们就遍历整个表,对所有被标记的节点执行标准的删除算法。a.... 阅读全文
posted @ 2015-03-20 01:47 猫薄荷喂狗 阅读(1373) 评论(0) 推荐(0)