摘要: AVL树是带有平衡条件的二叉查找树。一棵AVL树是其每个结点的左右子树和右子树的高度最多差1的二叉查找树。(空树的高度定义为-1)。AVL树是通过单旋转或者双旋转保持平衡性质。PS:只是贴上代码(严格来说是保存代码。。。。),日后会贴上图片,方便理解。。。。。。。。View Code 1 #include<iostream> 2 using namespace std; 3 4 template <typename Object> 5 class AVLTree 6 { 7 private: 8 struct AVLNode 9 { 10 ... 阅读全文
posted @ 2012-12-04 21:14 alan_forever 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 该书的代码是通过public的成员函数使用调用private递归函数的常规技术。不过我发现书本的insert函数是不可以实现结点相连。所以我参考了《算法导论》的insert函数(非递归)。PS:有一些函数没有写。。。。注释的地方为原书private成员insert函数。。。。。PS:之前搞错了书本的代码。。。。其实书本的代码是可以实现的。。。。。书本的是递归。。。。。。。注释地方为书本代码。。。。。。 1 #include<iostream> 2 using namespace std; 3 4 template <typename Object> 5 class Bi 阅读全文
posted @ 2012-11-07 21:30 alan_forever 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 题目利用堆栈实现算术表达式的计算实验内容:必做内容:运算对象均为整数选作内容:运算对象扩充为可以是带小数位的浮点数PS:这是直接由中缀计算。通过操作符的优先级别来判断什么时候将操作数栈里面的两个数分别弹出来,和将操作符栈的操作符弹出来进行操作。因为当一个操作符准备放入栈的时候,其实前一个操作符所左右的两个操作数已经存在操作数栈,只要判断是否要进行操作就可以了PS:这是整数的,小数的只是判断小数点而已,稍微修改一下就可以。 1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 templa 阅读全文
posted @ 2012-10-23 13:36 alan_forever 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 题目:实现学生健康情况管理的几个操作功能(新建、插入、删除、从文件读取、写入文件和查询、屏幕输出等功能)。健康表中学生的信息有学号、姓名、出生日期、性别、身体状况等。实验内容:必做内容:1.利用单链表来实现(PS:我用了双链表)2.系统的菜单功能项如下: 1------新建学生健康表 2------向学生健康表插入学生信息 3------在健康表删除学生信息 4------从文件中读取健康表信息 5------向文件写入学生健康表信息 6------在健康表中查询学生信息(按学生学号来进行查找) 7------在屏幕中输出全部学生信息 8-----退出PS:日后会修改的·· 阅读全文
posted @ 2012-10-22 21:38 alan_forever 阅读(672) 评论(0) 推荐(0) 编辑
摘要: PS:这两条习题是添加到STL的List代码实现http://www.cnblogs.com/alan-forever/archive/2012/09/12/2682437.html3.15 给List类添加splice操作。void splice( iterator position, List<Object> & lst )删除lst中的所有项,并将这些List * this中的位置position之前。lst和*this必须是不同的表,所写的例程必须是常量时间的。PS:刚开始以为O(n)是常量,最后我发现我严重的错了,之前还想逐个逐个调用inset函数,好吧,我错了。 阅读全文
posted @ 2012-10-15 23:42 alan_forever 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 这两题是单向链表,所以与之前的习题分开。List代码实现:http://www.cnblogs.com/alan-forever/archive/2012/09/12/2682437.html关于list的题目:http://www.cnblogs.com/alan-forever/archive/2012/09/25/2702100.html因为这两题除了添加元素的函数不同,其他操作都是一样。3.11 假设一个单向链表的实现有一个头结点,但是没有尾结点,并且有且只有一个指向表头结点的指针。写一个类,使之包括的方法可以:a、返回链表的大小。b、打印链表。c、检测值x是否在链表中。d、如果值x没 阅读全文
posted @ 2012-10-10 12:30 alan_forever 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 队列的循环数组实现······如果按照Vector,或者List的基础上去做就不用担心队列会满····这是按照教材、《数据结构与算法分析》、《算法导论》的用数组实现的思想····比较简单······所以····所以就没有解释······ 1 #include<iostream> 2 us 阅读全文
posted @ 2012-09-26 14:59 alan_forever 阅读(1949) 评论(0) 推荐(0) 编辑
摘要: stack容器适配器的简介见:http://www.cnblogs.com/alan-forever/archive/2012/09/16/2687480.html这份代码是用数组实现(也可以说是用vector实现,实质都一样!) 1 #include<iostream> 2 using namespace std; 3 4 template <typename Object> 5 class Stack 6 { 7 public: 8 enum { Capacity = 20 }; 9 10 Stack( ) 11 { 12 in... 阅读全文
posted @ 2012-09-25 20:25 alan_forever 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 这些题目是关于list的题目,只是给出实现题目要求的代码,整个完整程序是用List的代码实现的代码。List代码实现:http://www.cnblogs.com/alan-forever/archive/2012/09/12/2682437.htmlPS:思考时有些先入为主,影响对解法的思考·····以后要注意····3.6 Josephus问题。有N个人坐成一圈,编号为1至N。从编号为1的人开始传热马铃薯。M次传递之后,持有马铃薯的人退出游戏,圈缩小,然后游戏从退出人下面的人开始,继续进行。最后留下来 阅读全文
posted @ 2012-09-25 19:44 alan_forever 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 题目:实现学生健康情况管理的几个操作功能(新建、插入、删除、从文件读取、写入文件和查询、屏幕输出等功能)。健康表中学生的信息有学号、姓名、出生日期、性别、身体状况等。实验内容:必做内容:1.利用顺序存储结构来实现2.系统的菜单功能项如下: 1------新建学生健康表 2------向学生健康表插入学生信息 3------在健康表删除学生信息 4------从文件中读取健康表信息 5------向文件写入学生健康表信息 6------在健康表中查询学生信息(按学生学号来进行查找) 7------在屏幕中输出全部学生信息 8-----退出PS:如果有时间会继续完善!主要参考vector的代码实现 阅读全文
posted @ 2012-09-20 21:10 alan_forever 阅读(1868) 评论(0) 推荐(0) 编辑