二叉树基础知识
来源:互联网 发布:ubuntu磁盘空间查看 编辑:程序博客网 时间:2024/05/19 02:19
【边学边记】之二叉树基础知识
二叉树:二叉树是一棵树,其中每个节点都不能有多于两个的儿子。
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
(1)空二叉树——(a);
(2)只有一个根结点的二叉树——(b);
(3)只有左子树——(c);
(4)只有右子树——(d);
(5)完全二叉树——(e)
注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。
性质:
(1) 在二叉树中,第i层的结点总数不超过2^(i-1);
(2) 深度为h的二叉树最多有2^h-1个结点(h>=1),最少有h个结点;
(3) 对于任意一棵二叉树,其所有的叶结点数为:N0,而度为2的所有结点的数量为:N2,则:N0=N2+1,;
(4) 具有n个结点的完全二叉树的深度为int(log2n)+1
(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
若I为结点编号则 如果I<>1,则其父结点的编号为I/2;
如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;
如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。
(6)给定N个节点,能构成h(N)种不同的二叉树。
h(N)为卡特兰数的第N项。h(n)=C(n,2*n)/(n+1)。
(7)设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i。
重要概念
二叉查找树:二叉查找树又叫二叉排序树或者二叉搜索树,它首先是一个二叉树,而且必须满足下面的条件:
1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值;
2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
3)左、右子树也分别为二叉排序树;
4)没有键值相等的节点。
完全二叉树:若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。
满二叉树:除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树。
平衡二叉树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树又叫AVL树。
- 二叉树基础知识规律
- 二叉树的基础知识
- 二叉树的基础知识
- 【数据结构】二叉树基础知识
- 二叉树基础知识总结
- 二叉树基础知识
- 树和二叉树的一些基础知识
- 基础知识--二叉树 AVL树 红黑树
- 数据结构之二叉树基础知识总结
- 一步一步学习数据结构(4)-树和二叉树基础知识
- 面试基础知识整理 —— 二叉搜索树
- 二叉树的一些基础知识及创建、遍历
- 二叉树基础知识大全(核心理解遍历)
- 树,二叉树的一些基础知识以及二叉树的建立,存储操作
- 大数据及人工智能基础知识复习系列1 二叉树及二叉搜索树
- 算法基础知识科普:8大搜索算法之二叉搜索树(上)
- 算法基础知识科普:8大搜索算法之二叉搜索树(中)
- 算法基础知识科普:8大搜索算法之二叉搜索树(下)
- oracle数据库导出导入
- IoC【理解】【应用】【重点】
- JAVA 中BIO,NIO,AIO的理解
- centOS6.5安装rabbitmq
- java学习 十一、关键字static
- 二叉树基础知识
- 常用算法的时间复杂度
- 优酷视频API
- C语言代码书写风格
- vue刷新数据
- 闭包的认识
- 对于跨域总是not call back 的问题
- 动态表格的增删改查
- Android 消息机制原理 (源代码分析)