树和二叉树的一些知识
2016-07-27 10:44
204 查看
树,包含n个结点(n>0)而且满足以下条件的有限集合。
①存在唯一的结点,无前驱结点,即根;
②任何非根结点都有且只有一个前驱结点,即父节点;
③任何结点都有可能有多个后继结点,即子节点,没有后继结点的称为叶节点;
④任何非根节点都有且只有一条从根节点到该节点的结点序列。
度(次数):该节点的子节点个数;度为0的结点为叶节点;
层数:根节点层数为0;其他节点的层数为其父节点层数加1;
结点序列Vm到Vm+k所经历的边数为称为路径长度。
树的高度为最高层叶节点的层数。
二叉树:树中每个结点最多有两个子树。
二叉树有序且可以为空。
设T为由n个结点构成的二叉树,其中叶节点的个数为n0,次数为2的结点个数为n2;则n0=n2+1.
高度为k的二叉树至多有2k+1-1个结点。
若将一棵有n 个结点的完全二叉树按层次顺序用自然数从1开始编号,则编号为i的结点有如下性质:
①若i≠1,则编号为i 的结点的父节点编号为⌊i/2⌋;
②若2i<=n,则编号为i的结点的左孩子编号为2i,否则无左子节点;
③若2i+1<=n;则编号为i的结点的右子节点编号为2i+1;否则无右子节点。
具有n个结点的完全二叉树的高度为⌊log2n⌋。
①存在唯一的结点,无前驱结点,即根;
②任何非根结点都有且只有一个前驱结点,即父节点;
③任何结点都有可能有多个后继结点,即子节点,没有后继结点的称为叶节点;
④任何非根节点都有且只有一条从根节点到该节点的结点序列。
度(次数):该节点的子节点个数;度为0的结点为叶节点;
层数:根节点层数为0;其他节点的层数为其父节点层数加1;
结点序列Vm到Vm+k所经历的边数为称为路径长度。
树的高度为最高层叶节点的层数。
二叉树:树中每个结点最多有两个子树。
二叉树有序且可以为空。
设T为由n个结点构成的二叉树,其中叶节点的个数为n0,次数为2的结点个数为n2;则n0=n2+1.
高度为k的二叉树至多有2k+1-1个结点。
若将一棵有n 个结点的完全二叉树按层次顺序用自然数从1开始编号,则编号为i的结点有如下性质:
①若i≠1,则编号为i 的结点的父节点编号为⌊i/2⌋;
②若2i<=n,则编号为i的结点的左孩子编号为2i,否则无左子节点;
③若2i+1<=n;则编号为i的结点的右子节点编号为2i+1;否则无右子节点。
具有n个结点的完全二叉树的高度为⌊log2n⌋。
相关文章推荐
- AVL树-自平衡二叉查找树(Java实现)
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C#实现获取系统目录并以Tree树叉显示的方法
- 数据结构之Treap详解
- C语言实现输入一颗二元查找树并将该树转换为它的镜像
- C语言二叉树的非递归遍历实例分析
- 使用C语言构建基本的二叉树数据结构
- 一波二叉树遍历问题的C++解答实例分享
- 举例讲解C语言程序中对二叉树数据结构的各种遍历方式
- C++非递归队列实现二叉树的广度优先遍历
- PHP实现的线索二叉树及二叉树遍历方法详解
- C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解