二叉树的概念讲解

本篇就大概介绍下二叉树的基本知识。

1.二叉树的定义

二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵

互不相交的分别称为根结点的左子树和右子树的二叉树组成。

2.二叉树的特点

①。每个结点最多有两棵子树。

②。左子树和右子树是有顺序的。

③。即使树中某结点只有一颗子树,也要区分它是左子树还是右子树。

3.特殊的二叉树

斜树:

每一层都只有一个结点,节点的个数与二叉树的深度相同。

所有的结点都只有左子树的二叉树叫左斜树。所有结点都只有右子树的二叉树叫右斜树。

线性表结构可以理解为树的一种极其特殊的表现形式。

满二叉树:

若二叉树中所有分支结点都存在左子树和右子树,并且所有叶子在同一层,这样的二叉树称为满二叉树。

完全二叉树:

对一棵具有n个结点的二叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点

在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。

注意:满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。

4.二叉树的性质

性质1:二叉树的第i层上至多有2^(i-1)个结点(i>=1)。

性质2:深度为k的二叉树至多有2^k-1个结点(k>=1)。

性质3:对任何一棵二叉树,若其终端结点数为n0,也就是叶子结点数是n0,度为2的结点数为n2,则n0=n2+1;

性质4:具有n个结点的完全二叉树深度为[log2 n]+1.([x]表示不大于x的最大整数)。

性质5:若对一棵有n个结点的完全二叉树(其深度为[log2 n]+1)的结点按层序编号(从第1层到第[log2 n]+1层,每层从左到右),对任一结点i(1<=i<=n):

若有i=1,则结点i是二叉树的根,无双亲;若i>1,则其双亲是结点[i/2];

若有2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子是结点2i。

若2i+1>n,则结点i无右孩子,否则其右孩子是结点2i+1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构是计算机科学中非常重要的一个概念,它是指数据对象以及它们之间的关系和操作。数据结构可以分为三类:线性结构、树形结构和图形结构。下面我会简要介绍这三类数据结构。 1. 线性结构:线性结构是最简单的数据结构之一,它的特点是数据元素之间只存在一个前驱和一个后继关系。常见的线性结构有数组、链表、栈和队列等。数组是一种连续存储数据元素的线性结构,通过下标访问元素。链表是一种通过指针将数据元素链接起来的线性结构,具有插入和删除元素方便的优势。栈是一种先进后出(LIFO)的线性结构,常用于表达式求值、函数调用等场景。队列是一种先进先出(FIFO)的线性结构,常用于任务调度、缓冲区等场景。 2. 树形结构:树形结构是一种层次关系的数据结构,它由节点和边组成。每个节点可以有多个子节点,但只有一个父节点(除了根节点)。常见的树形结构有二叉树、堆和哈夫曼树等。二叉树是一种每个节点最多有两个子节点的树形结构,常用于搜索和排序算法中。堆是一种特殊的二叉树,具有堆序性质,常用于优先队列和堆排序。哈夫曼树是一种带权路径最短的二叉树,用于数据压缩和编码等领域。 3. 图形结构:图形结构是一种由节点和边组成的非线性结构,节点之间的关系可以是任意的。常见的图形结构有有向图和无向图等。有向图中的边具有方向性,表示节点之间的单向关系;无向图中的边没有方向性,表示节点之间的双向关系。图形结构常用于网络、社交关系分析等领域。 以上是对数据结构的简要介绍。如果你对某个具体的数据结构或者相关算法有更深入的问题,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值