浅谈树
树是什么: 树是一种非线性的结构,具有‘一对多’ 的特性。下图是一个简单的树结构
- 树的节点
- 节点: 每一个树的元素可以被认为是一个节点 A,B,C都是树的节点
- 父节点: B,C的父节点是A
- 兄弟节点:B,C互为兄弟节点
- 根节点: A为这棵树的根节点
- 子节点: B,C为A的子节点
- 叶子节点: 类似于B,C节点这样没有子节点的节点称为叶子节点
- 节点的度和深度
- 度 : A下有两个节点,那么A的度为2 ,A的度是最大的,那么这棵树的度就为2
- 深度:A的深度为1,B,C深度为2,那么 最大的深度就是树的深度 为2
- 有序树 无序树
- 有序树:如果树中结点的子树从左到右看,谁在左边,谁在右边,是有规定的,这棵树称为有序树;反之称为无序树。
- 无序树: 。。。
简单介绍一下树以后,后面主要围绕二叉树进行描述。
树拥有一个根节点,根节点下拥有不同的子节点。
//java中的二叉树
// 二叉树的结构
class TreeNode {
//存储的值
int val;
// 左子节点
TreeNode left;
// 右子节点
TreeNode right;
TreeNode(int x) {
val = x;
}
}
经过前人的总结,二叉树具有以下几个性质:
- 二叉树中,第 i 层最多有 2i-1 个结点。
- 如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。
- 二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。
- 稍后补充