数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)

这篇具有很好参考价值的文章主要介绍了数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

二叉树的定义

二叉树具体的五种基本形态

1.空树

2.只有一个节点

3.有左子树,但右子树为空

4.有右子树,但左子树为空

 5.左右两子树都不为空

特殊二叉树

斜二叉树

满二叉树 

完全二叉树

二叉树的几个重要性质

初识二叉树的几个操作函数 


二叉树的定义

二叉树T:一个有穷的节点集合。

这个集合可以为空;若不为空,则它是由根节点和称为其左子树右子树的两个不相交的二叉树组成。

二叉树具体的五种基本形态

1.空树

2.只有一个节点

3.有左子树,但右子树为空

二叉树的五种基本形态,数据结构,数据结构,学习

4.有右子树,但左子树为空

二叉树的五种基本形态,数据结构,数据结构,学习

 5.左右两子树都不为空

二叉树的五种基本形态,数据结构,数据结构,学习

要注意,二叉树与普通的度为二的树不同的一点是:二叉树的子树有左右顺序之分。

特殊二叉树

斜二叉树

二叉树的五种基本形态,数据结构,数据结构,学习

斜二叉树都只有左儿子或者都只有右儿子,这样的二叉树,实际上相当于一个链表,形成了一个线性结构。

满二叉树 

又叫完美二叉树

二叉树的五种基本形态,数据结构,数据结构,学习

 这样的二叉树是除了最底层的叶节点没有节点,其它每一个节点都有两个儿子;且叶节点都在同一层。

完全二叉树

有n个节点的二叉树,对树中节点按从上至下、从左到右顺序进行编号,编号为i(1<= i <= n)节点与满二叉树中编号为i节点在二叉树中位置相同。

简单地来说,完全二叉树的节点编号要与它满二叉树形态下的节点编号相一致,如下图:

二叉树的五种基本形态,数据结构,数据结构,学习

二叉树的几个重要性质

  • 一个二叉树第i层的最大节点数为,i >=1。

这个性质很好理解,像满二叉树这种树每一层都达到了最大节点数,节点数满足首项为1,公比为2的等比数列。

二叉树的五种基本形态,数据结构,数据结构,学习

  •  深度为K的二叉树有最大节点总数为:-1,k >=1。

能达到最大节点数的树是怎样的呢?

当然就是完美二叉树啦,其节点数:

第一层:1

第二层:2

第三层:4

......

第k层:

用等比数列求和公式

就可以求和最大节点数为:-1。

  • 对任何非空二叉树T,若n0表示叶节点的个数,n2是度为2的非叶节点个数,那么两者满足关系n0 = n2 +1。

二叉树的五种基本形态,数据结构,数据结构,学习

我们从边的角度来推导出这个性质:

二叉树的五种基本形态,数据结构,数据结构,学习

初识二叉树的几个操作函数 

  • Boolean IsEmpty(BinTree BT):判别BT是否为空
  • void Traversal(BinTree BT):遍历,按某个顺序访问每个节点
  • BinTree CreatBinTree():创建一个二叉树

常用的遍历方法有:

  1. void PreOrderTrversal(BinTree BT):先序——根、左子树、右子树
  2. void InorderTraversal(BinTree BT):中序——左子树、根、右子树
  3. void PostOrderTraversal(BinTree BT):后序——左子树、右子树、根
  4. void LevelOrderTraversal(BinTree BT):层次遍历,从上到下、从左到右

end 


学习自:MOOC数据结构——陈越、何钦铭文章来源地址https://www.toymoban.com/news/detail-775542.html

到了这里,关于数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构学习记录——什么是堆(优先队列、堆的概念、最大堆最小堆、优先队列的完全二叉树表示、堆的特性、堆的抽象数据类型描述)

    目录 优先队列 若采用数组或链表实现优先队列  数组 链表 有序数组 有序链表 总结 若采用二叉搜索树来实现优先队列 最大堆 堆的概念 优先队列的完全二叉树表示 堆的两个特性  结构性 有序性 【例】最大堆和最小堆 【例】不是堆 堆的抽象数据类型描述 优先队列 (Prio

    2024年02月02日
    浏览(51)
  • 第一百零五天学习记录:数据结构与算法基础:顺序表(王卓教学视频)

    注:笔记截图均来自王卓数据结构教学视频 线性表是具有相同特性的数据元素的一个有限序列 同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。 稀疏多项式的运算 顺序存储结构存在的问题 1、存储空间分配不灵活 2、运算的空间复杂度高 引出链式存储

    2024年02月15日
    浏览(38)
  • 第一百零六天学习记录:数据结构与算法基础:单链表(王卓教学视频)

    结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻 线性表的链式表示又称为非顺序映像或链式映像。 用一组物理位置任意的存储单元来存放线性表的数据元素。 这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意

    2024年02月16日
    浏览(55)
  • 数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)

    目录 问题描述  解题思路 伪代码  总体算法 DFS算法 伪代码解读 总体算法 DFS算法 具体实现(C语言) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑

    2024年02月05日
    浏览(78)
  • 数据结构与算法学习:二叉树的后序遍历的递归与非递归实现,以及非递归实现中的流程控制的说明。

    需求二叉树: 采用二叉树后序遍历非递归算法。设置一个指针p初始指向树根,p先入栈,而后使得p指向它的左孩子p-firstchild,重复操作,使得每个左孩子都依次入栈,同时初始化一个Treenode*类型的指针 pre,这个指针是后序前驱,这个后序前驱用以区分为已访问过的结点和未

    2023年04月22日
    浏览(48)
  • 第一百二十八天学习记录:数据结构与算法基础:栈和队列(上)(王卓教学视频)

    1、栈和队列是两种常用的、重要的数据结构 2、栈和队列是限定插入和删除只能在表的“端点”进行的线性表 线性表可以在任意一个位置插入和删除,栈只能在最后位置插入和删除 只能删除第一个元素 栈和队列是线性表的子集(是插入和删除位置受限的线性表)

    2024年02月13日
    浏览(43)
  • 【数据结构与算法】—— 二叉树

    目录 一、树 1、初识树 2、树的一些概念 3、树的表示形式 二、二叉树 1、初识二叉树 2、两种特殊的二叉树 3、二叉树的性质  4、二叉树的遍历 5、实现一棵二叉树  6、二叉树题目(没代码的后面会给补上) (1)根节点没有前驱。 (2)子树的根节点只有一个前驱,可以有

    2024年04月09日
    浏览(48)
  • 数据结构与算法-二叉树

            在计算机科学中,数据结构是组织和存储数据的基础框架,而算法则是处理这些数据的核心逻辑。在这众多的数据结构中,二叉树因其独特的层级结构、高效的搜索和插入操作,成为广泛应用的一种非线性数据结构。本文将深入探讨二叉树的定义、种类、操作方法

    2024年03月10日
    浏览(58)
  • 【数据结构和算法】--- 二叉树(3)--二叉树链式结构的实现(1)

    在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,且为了方便后面的介绍,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研

    2024年01月25日
    浏览(63)
  • 二叉树(上)——“数据结构与算法”

    各位CSDN的uu们好呀,好久没有更新我的数据结构与算法专栏啦,今天,小雅兰继续来更新二叉树的内容,下面,让我们进入链式二叉树的世界吧!!! 二叉树链式结构的实现  二叉树链式结构的实现 普通的二叉树的增删查改是没有价值的!!! 只有搜索二叉树的增删查改才

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包