树与图简单剖析
2016-04-04 17:41
155 查看
树
二叉树和二叉查找树:
二叉查找树附加如下条件:对于任意节点,左子节点小于等于当前节点,当前节点又小于所有右子节点。
平衡与不平衡:
许多树都是平衡的,但并非全部如此。如果树是不平衡的,应当从平均情况和最坏情况所需的时间来描述算法。注意,平衡一棵树只意味着子树的深度差不会超过一定值,并不表示左子树和右子树的深度完全相同。
完满和完整:
完满和完整树的所有叶节点都在树的底部,所有非叶节点都有两个子节点,注意,完满和完整的树极少,因为这棵树必须正好有2的n次方-1个节点才满足这个条件。
二叉树遍历:
分为中序,后序,前序三种遍历方式。其中最常见的是中序遍历,先遍历左子树,然后访问当前节点,最后遍历右子树。
树的平衡(红黑树和平衡二叉)
单词查找树(trie):
trie树是n层数的一种变体,其中每个节点存储有字符。整棵树的每条路径自上而下表示一个单词。一颗简单的单词查找树如下图:
图
图比树要更复杂。一般遍历图有两种思路:广度优先搜索(BFS)和深度优先搜索(DFS)。
广度优先搜索(BFS)和深度优先搜索(DFS)通常用于不同的场景,如要访问图中的所有结点,或者访问最少的节点,DFS一般最为简单。不过如果一棵树的规模非常大,在离最初结点太远时想要随时退出的话可能会有问题;我们可能搜索了该节结点的成千上万个祖先结点,却还未搜索到该节点的全部子节点。对于这种情况一般首选BFS。
二叉树和二叉查找树:
二叉查找树附加如下条件:对于任意节点,左子节点小于等于当前节点,当前节点又小于所有右子节点。
平衡与不平衡:
许多树都是平衡的,但并非全部如此。如果树是不平衡的,应当从平均情况和最坏情况所需的时间来描述算法。注意,平衡一棵树只意味着子树的深度差不会超过一定值,并不表示左子树和右子树的深度完全相同。
完满和完整:
完满和完整树的所有叶节点都在树的底部,所有非叶节点都有两个子节点,注意,完满和完整的树极少,因为这棵树必须正好有2的n次方-1个节点才满足这个条件。
二叉树遍历:
分为中序,后序,前序三种遍历方式。其中最常见的是中序遍历,先遍历左子树,然后访问当前节点,最后遍历右子树。
树的平衡(红黑树和平衡二叉)
单词查找树(trie):
trie树是n层数的一种变体,其中每个节点存储有字符。整棵树的每条路径自上而下表示一个单词。一颗简单的单词查找树如下图:
图
图比树要更复杂。一般遍历图有两种思路:广度优先搜索(BFS)和深度优先搜索(DFS)。
广度优先搜索(BFS)和深度优先搜索(DFS)通常用于不同的场景,如要访问图中的所有结点,或者访问最少的节点,DFS一般最为简单。不过如果一棵树的规模非常大,在离最初结点太远时想要随时退出的话可能会有问题;我们可能搜索了该节结点的成千上万个祖先结点,却还未搜索到该节点的全部子节点。对于这种情况一般首选BFS。
相关文章推荐
- 如何实现一个 Virtual DOM 算法
- codevs 1044
- 【读书笔记】Android访问远程数据的步骤(Messenger、AIDL、ContentProvider
- 经验
- 华为2016校园招聘上机笔试题[编程题] 简单错误记录
- 15个必知的Android开发者选项
- jQuery- v1.10.2 源码解读
- [LeetCode]309. Best Time to Buy and Sell Stock with Cooldown
- 获取控制台打印数据写入本地文档
- S3C2440 定时器中断配置流程
- BlockingQueue队列学习
- 声学模型(一) hmm声学训练流程
- JAVA日期格式化
- 【翻译自mos文章】当在Windows 2008 server 上安装OGG Director Server之后,Director Web无法访问
- Subversion基础:概念、安装、配置和基本操作
- 机器学习中的范数规则化之(二)核范数与规则项参数选择
- 【ZOJ 1937】 【POJ 2248】 Addition Chains
- 内部类的方法(外部调用内部类的方法)
- 数据存储--SQLite增删改查
- JavaMail API详解