摘要: 【二叉搜索树】随机生成时平均深度为logN,平均插入、删除和搜索时间都是O(logN)。可能存在的问题是数据不均衡,使树单边生长,极端情况下变成类似链表,最坏插入、删除、搜索时间O(N)写这个例程也花了些时间,例程主要包括查找、插入、删除、遍历、清空几个内容。同时避免之前写链表到了半途再修改,拷贝构... 阅读全文
posted @ 2015-03-21 05:02 猫薄荷喂狗 阅读(321) 评论(0) 推荐(0)
摘要: 基本上每章到增补附注这里就算是结束了。根据设想,每章的这一篇基本上会注明这一章哪些题没有做,原因是什么,如果以后打算做了也会在这里补充。还有就是最后会把有此前诸多习题的代码和原数据结构放整理后,以单个数据结构为单位放在一个文档里面。【未做习题】习题3.1:编写打印出一个单链表的所有元素的程序。//这... 阅读全文
posted @ 2015-03-21 05:00 猫薄荷喂狗 阅读(189) 评论(0) 推荐(0)
摘要: 【练习3.26】双端队列(deque)是由一些项的表组成的数据结构,对该数据结构可以进行下列操作:Push(X,D):将项X插入到双端队列D的前端。Pop(D):从双端队列D中删除前端项并返回。Inject(X,D):将项X插入到双端队列D的尾端。Eject(D):从双端队列D中删除尾端项并返回。编... 阅读全文
posted @ 2015-03-21 04:27 猫薄荷喂狗 阅读(930) 评论(0) 推荐(0)
摘要: 【练习3.25】编写实现队列的例程,使用a.链表b.数组Answer:在这章一开头就已经写了个链表的队列例程了,所以实际上只要做b小题就可以。数组模拟队列和链表的两点小不同是:①、数组空间有限,入队需要检测数组是否已经满②、数组经过几次操作后,rear可能绕回front前面,所以许多操作都要用模来实... 阅读全文
posted @ 2015-03-21 02:53 猫薄荷喂狗 阅读(564) 评论(0) 推荐(0)
摘要: 【练习3.22】a.提出支持栈的Push和Pop操作以及第三种操作FindMin的数据结构,其中FindMin返回该数据结构的最小元素,所有操作在最坏情况下的运行时间都是O(1)。b.证明,如果我们加入第四种操作DeleteMin,那么至少有一种操作必须花费Ω(logN)时间。【练习3.23】说明如... 阅读全文
posted @ 2015-03-21 00:27 猫薄荷喂狗 阅读(354) 评论(0) 推荐(0)