BFS是较为直观的解法。缺点是要借用不少数据结构的帮忙,也许可以想办法避免。
在需要树的路径时,往往会重新搞一个数据结构,保存子->父的回溯链,这个容易实现。
但确实浪费了时间和空间,避免方法之一是冗余存储。每个节点中按顺序存储所有祖先节点信息。
如此, 当该节点被选中时,它的祖先自然也就确定了。本题的数字可以用一分隔符,例如“#”分割,以完成最后的答案的构造。
/**
* Defini...
分类:
其他好文 时间:
2014-12-09 21:35:32
阅读次数:
177
这道题目DFS用得非常不自信。
(1)递归的用得不够大胆,过分考虑细节了,应该站得高些。
(2)思路厘清之后,要注意状态值的修改,就是状态恢复。深度优先走到底之后,需要返回,此时对应的状态也应该返回。例如之前放到堆栈/vector里的状态数据要弹出来。
/**
* Definition for binary tree
* struct TreeNode {
* int val;...
分类:
其他好文 时间:
2014-12-09 17:53:30
阅读次数:
142
1.通过远程工具登陆到linux后,所在的位置是当前登录用户的家目录(home directory)。2.家目录的符号用~表示。3.linux的文件系统是一个树结构。 linux文件系统的树根成为根目录,使用符号"/"表示。 linux文件系统中使用符号".."表示上级目录。 linux文件系...
分类:
系统相关 时间:
2014-12-09 17:07:42
阅读次数:
137
bzoj 3053 HDU 4347 : The Closest M Points kd树题目大意:求k维空间内某点的前k近的点。就是一般的kd树,根据实测发现,kd树的两种建树方式,即按照方差较大的维度分开(建树常数大)或者每一位轮换分割(询问常数大),后者更快也更好些,以后就果断写第二种了。#i...
分类:
其他好文 时间:
2014-12-08 17:20:35
阅读次数:
533
数据分析算法决策树决策树用于对数据集中的记录进行分类。假设每条记录都含有若干条属性,决策树根据属性进行分类。ID3算法如何决定选取哪条属性来进行划分? 判断条件是根据该属性划分后数据集的信息熵最小(信息熵越小表明数据越整齐),也就是熵差值最大。假设A属性共有n个取值,按照A划分后将获得n个分支,每个...
分类:
编程语言 时间:
2014-12-08 17:10:12
阅读次数:
191
二叉排序树的查找算法
假定二叉排序树的根节点指针为root,给定的关键字值为K,则查找算法可描述为:
置初值:p = root ;
如果 key = p -> data ,则查找成功,算法结束;
否则,如果key data ,而且 p 的左子树非空,则将 p 的左子树根送 p ,转步骤 2 ;否则,查找失败,算法结束;
否则,如果 key > p->data ,而且...
分类:
编程语言 时间:
2014-12-04 12:16:31
阅读次数:
107
点评:目录树的主要部分有root(/)、/USR、/var、/home等等目录树的主要部分有root(/)、/USR、/var、/home等等。下面是一个典型的linux目录结构如下:/根目录/bin存放必要的命令/boot存放内核以及启动所需的文件等/dev存放设备文件/etc存放系统的配置文件/home用户文件的主..
分类:
系统相关 时间:
2014-12-03 14:31:12
阅读次数:
182
问题:对一个二叉搜索树进行前序遍历,打印出每个结点的值,但是不能使用递归。
解题:
(1)递归可以用迭代来替代
(2)了解递归的前序遍历中发生了什么:①打印出根节点(或子树根节点)的值;②对左子树进行前序遍历;③对右子树进行前序遍历。
递归隐式地使用了一个数据结构栈来存放调用栈上的数据。实际上,递归调用用于隐式地在栈上存储右子树的地址,因此左子树遍历完后,可以继续遍历右...
分类:
其他好文 时间:
2014-11-30 11:30:09
阅读次数:
141
Giveninorderandpostordertraversalofatree,constructthebinarytree.Note:Youmayassumethatduplicatesdonotexistinthetree.postorder为左右中,所以postorder的最后一个为根,取得树根后,在inorder中可以找到左子树与右子树的元素。问题可分解为,找根,确定左子树与右子树的..
分类:
其他好文 时间:
2014-11-29 07:12:58
阅读次数:
167
给定树根root。实现中序遍历,也就是左根右。用递归的话,很简单,左边的返回值加上root的再加上右边的就行。我自己写的有点挫:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *le...
分类:
其他好文 时间:
2014-11-25 01:34:34
阅读次数:
129