博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的概念和基本术语
阅读量:5135 次
发布时间:2019-06-13

本文共 1447 字,大约阅读时间需要 4 分钟。

二叉树简单说就是有两个子树的树

 

1.种类及概念:

  二叉树是每个结点最多有两个子树的树结构。

  完全二叉树:除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点。

  满二叉树:每一层上的节点数都是最大节点数,深度为k,且有2^k-1个节点。

  平衡二叉树:又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

  森林:不考虑连通性,允许图中有多个连通分量的结构。

    

    (1)空二叉树:图(a)

    (2)只有一个根结点的二叉树:图(b)

    (3)只有左子树:图(c)

    (4)只有右子树:图(d)

    (5)完全二叉树:图(e)

 

2.定义及性质:

  二叉树常被用于实现二叉查找树和二叉堆。

  二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。

  二叉树不是树的一种特殊情形,树和二叉树有两个主要差别:

    1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2

    2. 树的结点无左、右之分,而二叉树的结点有左、右之分。

 

3.其他术语:

子树:通常被称作“左子树”(left subtree)和“右子树”(right subtree);

根结点(root):也叫树根,所有非空的二叉树中,都有且仅有一个根结点。它是同一棵树中除本身外所有结点的祖先,没有父结点。

树的结点(node):包含一个数据元素及若干指向子树的分支;

孩子结点(child node):结点的子树的根称为该结点的孩子;

双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;

兄弟结点:同一双亲的孩子结点;

堂兄结点:位于同一层的,并且父节点之间是兄弟结点的结点

祖先结点: 从根到该结点的所经分支上的所有结点;

子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙;

结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;也叫结点的层次或结点的深度;

树的深度(depth):树中最大的结点层,也叫结点的最大层次;

结点的高度(height of node):高度与深度不同,高度的描述是自下向顶的;

路径(path)和路径长度:从结点n1到nk的路径为一个结点序列n1,n2,...,nk,ni是ni+1的父结点。路径所包含边的个数为路径的长度;

结点的度(Degree):拥有子结点(子树)的数量;

树的度: 选取所有结点中最大的度;

叶子结点:也叫终端结点,是度为 0 的结点。位于树最深层,并且树只要非空,就一定存在叶子结点

分枝结点:度不为0的结点。除了叶子结点之外的结点都为分支结点,而且根结点也是分支结点

有序树:子树有序的树,如:家族树;

无序树:不考虑子树的顺序。

【注:参考:https://blog.csdn.net/weixin_41133154/article/details/80027285

  https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin】

 

 

转载于:https://www.cnblogs.com/GodSince/p/10909565.html

你可能感兴趣的文章
蓝桥杯:十六进制转八进制
查看>>
iOS学习-字符串的删除替换
查看>>
可能比文档还详细--VueRouter完全指北
查看>>
Android状态栏颜色修改
查看>>
Android Canvas drawText实现中文垂直居中
查看>>
Android蓝牙A2dp profile的使用
查看>>
有效值——百度百科
查看>>
DP习题
查看>>
FullCalendar 的学习笔记(一)
查看>>
运维思想--01
查看>>
并查集
查看>>
设计模式之-单例模式
查看>>
js获取url后面的参数值
查看>>
第四章 心得体会
查看>>
7-1 打印沙漏
查看>>
IAR Embedded Workbench IDE 显示行号
查看>>
android 选择多选图片
查看>>
PAT 1045 快速排序(25)(STL-set+思路+测试点分析)
查看>>
判断字符串中是否存在的几种方案:string.indexof、string.contains、list.contains、list.any几种方式效率对比...
查看>>
集合框架
查看>>