摘要: 【练习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)
摘要: 先占个文章空间 阅读全文
posted @ 2015-03-19 20:36 猫薄荷喂狗 阅读(153) 评论(0) 推荐(0)
摘要: 【练习3.16】假设我们有一个基于数组的表A[0,1...N-1],并且我们想删除所有相同的元素。LastPosition初始值为N-1,但应该随着相同元素被删除而变得越来越小。考虑图3-61中的伪代码程序段。过程Delete删除位置j上的元素并使表破坏。a.解释该过程是如何工作的b.利用一般的表操... 阅读全文
posted @ 2015-03-19 20:35 猫薄荷喂狗 阅读(321) 评论(0) 推荐(0)
摘要: 【练习3.15】a.写出自调整表的数组实现。自调整表如同一个规则的表,但是所有的插入都在表头进行。当一个元素被Find访问时,它就被移到表头而并不改变其余的项的相对顺序。b.写出自调整表的链表实现c.设每个元素都有其被访问的固定概率pi。证明那些具有最高访问概率的元素都靠近表头。Answer:a简单... 阅读全文
posted @ 2015-03-19 19:46 猫薄荷喂狗 阅读(691) 评论(0) 推荐(0)
摘要: 【练习3.13】利用社会安全号码对学生记录构成的数组排序。编写一个程序进行这件工作,使用具有1000个桶的基数排序并且分三趟进行。Answer:首先,对社会安全号码不了解的就把它当成一个不超过9位的正整数就好了。于是题目就是,通过1000个桶,对9位正整数进行桶排序。因为一次最多比较三位(1000桶... 阅读全文
posted @ 2015-03-19 12:41 猫薄荷喂狗 阅读(336) 评论(1) 推荐(1)
摘要: 【练习3.12】a.编写一个非递归过程以O(N)时间反转单链表。b.使用常数附加空间编写一个过程以O(N)时间反转单链表。Answer:这题的b貌似没啥意义,在a小题里直接用头插法,不断地将头节点后移,并将当前头节点所在的节点的后继指针指回前驱就能倒置链表了,不需要额外的空间。所以就写了a。测试代码... 阅读全文
posted @ 2015-03-18 14:49 猫薄荷喂狗 阅读(383) 评论(0) 推荐(0)
摘要: 【练习3.11】编写查找一个单链表特定元素的程序。分别用递归和非递归实现,并比较它们的运行时间。链表必须达到多大才能使得使用递归的程序崩溃?Answer:实现都是比较容易的,但是实际上查找链表元素本身也没必要使用递归的方法。考虑到题目让人比较运行时间与程序崩溃的边界,可以认为这是警示大家不要滥用递归... 阅读全文
posted @ 2015-03-17 20:48 猫薄荷喂狗 阅读(676) 评论(0) 推荐(0)