一、 题目
给一个二叉树,其中节点只可能是数字0-9,每一条路径组成一个数。
如下:
1
/ 2 3
左边路径1->2 代表 12.
右边路径1->3 代表 13.
sum = 12 + 13 = 25.
二、 分析
想起了一句话,树的问题可归结为递归问题,这道题也一样,每次经过一个节点会遇到三中情况:
1、不包含左/右节点;
...
分类:
其他好文 时间:
2015-02-26 18:38:51
阅读次数:
89
/* 1.二叉树遍历算法提供了二叉树的一次性遍历,可是二叉树遍历算法无法实现用户程序像分步 遍历单链表那样分步遍历二叉树。线索二叉树就是专门为实现分步遍历二叉树而设计的。线索二叉树能够实现像双向 链表那样,既能够从前向后分步遍历二叉树,又能够从后向前分步遍历二叉树 2.当按某种规则遍历二叉树时,保存...
分类:
其他好文 时间:
2015-02-21 19:58:01
阅读次数:
202
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在...
分类:
其他好文 时间:
2015-02-09 15:47:49
阅读次数:
198
“树”是一种重要的数据结构,本文浅谈二叉树的遍历问题,采用C语言描述。一、二叉树基础1)定义:有且仅有一个根结点,除根节点外,每个结点只有一个父结点,最多含有两个子节点,子节点有左右之分。2)存储结构二叉树的存储结构可以采用顺序存储,也可以采用链式存储,其中链式存储更加灵活。 在链式存储结构中...
分类:
其他好文 时间:
2015-02-05 21:48:08
阅读次数:
417
题目大意:有一段深搜的代码,是遍历一个邻接矩阵,然后输出一个序列,这个邻接矩阵的原形是一棵树,那么现在就是要你根据序列,求出最多有多少个不同的树遍历之后可以得到相同的序列。
思路:这道题属于简单的区间DP,仔细点想就可以了。
第一种方法也是最直接的思路。
令dp[i][j]表示的是以i这个点为根,其余点为它的子树时,符合条件的最大个数。
从样例可以想到
1 2 3由于3和2交换之后,依然...
分类:
其他好文 时间:
2015-02-04 16:31:47
阅读次数:
160
在排序中,之前利用大小根堆的方式,保持最小值或者最大值在堆顶端
二叉排序树是保持这棵树一直是有序的
二叉排序树的建立,不同于堆操作只需要对非叶子节点进行处理,保持其大于左右孩子,或者是小于左右孩子,而是需要对每一个点都进行处理,因为他是相对而言更加
严谨的操作
查找一个数据:对于大根堆操作,如果当前值小于根节点,那么这个值在左右分支出现都是由可能得,但是对于BST,如果小那么肯定在...
分类:
编程语言 时间:
2015-02-03 19:27:04
阅读次数:
230
【先序遍历】【中序遍历】中序遍历非递归遍历算法:遇到一个结点,就把它压栈,并去遍历它的左子树;当左子树遍历结束后,从栈顶弹出这个结点并访问它;然后按其右指针再去中序遍历该结点的右子树;【后续遍历】【层序遍历】
分类:
其他好文 时间:
2015-02-03 12:30:14
阅读次数:
173
为了学习游戏,决定重学算法,下面是借用的算法目录,来告诉自己要学习的内容,务必完成。算法 3 树 4 遍历二叉树 5 线索二叉树 6 霍夫曼树 7 图 8 深度优先搜索 9 广度优先搜索10 ...
分类:
编程语言 时间:
2015-02-02 17:47:54
阅读次数:
217
原题地址基本二叉树遍历代码:1 int minDepth(TreeNode *root) {2 if (!root)3 return 0;4 5 int l = root->left ? minDepth(root->l...
分类:
其他好文 时间:
2015-02-02 12:30:43
阅读次数:
96
二叉树的非递归实现需要使用到下推栈,下面给出前序遍历的完整代码: 1 #include 2 #include 3 #define MAX 10 4 5 6 //二叉树存储结构定义 7 typedef char Item; 8 typedef struct node *link; 9 str...
分类:
其他好文 时间:
2015-02-01 17:31:41
阅读次数:
176