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

浙公网安备 33010602011771号