随笔分类 -  数据结构与算法

笔记
摘要:二叉树左右子结点可旋转是指:可以把二叉树的左结点旋转成为右子树,把右子树的结点旋转成为左子树。这个与判断两棵二叉树的逻辑相同,只是要交叉判断。算法思路:在文章http://www.cnblogs.com/houjun/p/4860680.html的基础上,把判断代码改成如下:1 if(T1->d... 阅读全文
posted @ 2015-10-08 13:07 HOU_JUN 阅读(683) 评论(0) 推荐(0)
摘要:算法思想:先序遍历,递归实现。先判断根节点是否相等,然后在判断左右子树是否相等。代码如下 1 //二叉树节点结构体 2 struct BinaryNode 3 { 4 int data; 5 BinaryNode * lc; 6 BinaryNode * rc; 7 }*BT... 阅读全文
posted @ 2015-10-08 12:57 HOU_JUN 阅读(17991) 评论(0) 推荐(1)
摘要:这也是我们聚会时常常做的游戏之一。 算法思路:   此处我使用循环链表模拟人围城一圈,每一个结点代表一个人。链表是一个有序链表,链表结点数据域是一个整型,代表人的序号。出局等同于链表删除元素,每次出局后重新从1k开始数。知道剩下最后一个。最后一个的判定是:while((p-num)!=(p-next-num))。循环跳出,就是到最后一个人。 阅读全文
posted @ 2015-10-07 23:56 HOU_JUN 阅读(2495) 评论(0) 推荐(0)
摘要:算法的思想: 采用二叉树的后序遍历非递归算法。由于后序遍历非递归算法使用一个栈实现,每次都会在一条路径上走到最底层才向上访问,再向右访问。因此,记录下栈在遍历中的最大值,即为二叉树的最大深度。#include #include using namespace std;typedef struct ... 阅读全文
posted @ 2015-10-07 23:45 HOU_JUN 阅读(14683) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 typedef struct BinTree 6 { 7 int data; 8 BinTree *lc; 9 BinTree *rc... 阅读全文
posted @ 2015-10-07 22:58 HOU_JUN 阅读(621) 评论(0) 推荐(0)