【数据结构】二叉树基础

这篇具有很好参考价值的文章主要介绍了【数据结构】二叉树基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【数据结构】二叉树基础,数据结构与算法,数据结构

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

一、树的概念与定义

把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 树是一种非线性的数据结构,它表现的关系是一对多

它是由n(n>=0)个结点组成的有限集,当n = 0时,称为空树
在任意一棵非空树中应满足:

🔸1.有且仅有一个特殊的根节点,根节点没有前驱结点

🔸2.每一个非根结点有且只有一个父结点;
🔸3.除了根结点外,每个子结点可以分为多个不相交的子树,并且子树是不相交的

🔸4.树是递归定义的

🔸 5.一颗N个结点的树有N-1条边

【数据结构】二叉树基础,数据结构与算法,数据结构

【数据结构】二叉树基础,数据结构与算法,数据结构

二、树的有关名词

就拿下面这颗树来举例:
【数据结构】二叉树基础,数据结构与算法,数据结构
节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6

叶节点终端节点度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点

非终端节点分支节点度不为0的节点; 如上图:D、E、F、G…等节点为分支节点

双亲节点父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:A是B的父节点.

孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子节点

兄弟节点具有相同父节点的节点互称为兄弟节点; 如上图:B、C是兄弟节点

树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为6

节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

树的高度深度树中节点的最大层次; 如上图:树的高度为4

堂兄弟节点双亲在同一层的节点互为堂兄弟;如上图:H、I互为兄弟节点

节点的祖先:从根到该节点所经分支上的所有节点;如上图:A是所有节点的祖先

子孙:以某节点为根的子树中任一节点都称为该节点的子孙。如上图:所有节点都是A的子孙

森林:由m(m>0)棵互不相交的树的集合称为森林;

注意:节点和双亲结点为社么这样叫?就是因为引起对性别的歧视。既要尊重男性,也要尊重女性。

三、树的存储结构

(1)双亲表示法(2)孩子表示法(3)孩子兄弟表示法

1.双亲表示法

链式存储中在每个节点中,有一个指示器指示其双亲结点到链表中的位置,
使其每个结点,不但知道自己是谁,而且知道双亲位置

不能查找子节点,只能查找双亲结点。

1)链式存储
【数据结构】二叉树基础,数据结构与算法,数据结构
【数据结构】二叉树基础,数据结构与算法,数据结构
2)数组存储
采用数组中存放结构体。

【数据结构】二叉树基础,数据结构与算法,数据结构

【数据结构】二叉树基础,数据结构与算法,数据结构

2.孩子表示法

将每个结点的孩子结点排序,以单链表存储,则n个结点有n个孩子链表 并且如果是叶子结点,这个单链表为空然后将每个单链表的头指针组成一个线性表,顺序存储放入数组中

【数据结构】二叉树基础,数据结构与算法,数据结构

3.孩子兄弟表示法(又叫二叉树法)

【数据结构】二叉树基础,数据结构与算法,数据结构

对于树来说,他的最好的存储方式是兄弟节点表示法

typedef int DataType;
struct Node
{
 struct Node* _firstChild1; // 第一个孩子结点
 struct Node* _pNextBrother; // 指向其下一个兄弟结点
 DataType _data; // 结点中的数据域
};

四、树的应用

【数据结构】二叉树基础,数据结构与算法,数据结构文章来源地址https://www.toymoban.com/news/detail-703355.html

到了这里,关于【数据结构】二叉树基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 二叉树(上)——“数据结构与算法”

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

    2024年02月15日
    浏览(45)
  • 【数据结构】二叉树基础入门

    💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃 个人主页 :阿然成长日记 👈点击可跳转 📆 个人专栏: 🔹数据结构与算法🔹C语言进阶 🚩 不能则学,不知则问,耻于问人,决无长进 🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍 一棵二叉树是结点的

    2024年02月09日
    浏览(41)
  • 数据结构~二叉树(基础知识)

    上一篇博客我们对树有了初步了解与学习,这篇我将初步学习二叉树!!(新年快乐!) 目录 二叉树   1、定义: 2、特点: 3、基本形态: 4、二叉树的种类: (1)满二叉树 (2)完全二叉树 (效率高) (3)斜树 5、二叉树的性质:  6、二叉树的存储: 1、定义: 二叉树

    2024年02月19日
    浏览(51)
  • 【数据结构】树与二叉树(十三):递归复制二叉树(算法CopyTree)

      二叉树是一种常见的树状数据结构,它由结点的有限集合组成。一个二叉树要么是 空集 ,被称为 空二叉树 ,要么由一个根结点和两棵不相交的子树组成,分别称为 左子树 和 右子树 。每个结点最多有两个子结点,分别称为左子结点和右子结点。 引理5.1:二叉树中层数

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

    除了之前我们讲的栈、队列、链表等线性结构,数据结构中还有着一对多的 非线性结构 ——— 树 。 树是有 n 个结点组成的有限集,当n=0时为空树,在任意一颗非空树中,有且仅有一个 特定的根结点 ;当n1时,其余结点又可以分为一棵树,称为根的 子树 。 如下图所示: A为

    2023年04月09日
    浏览(50)
  • 数据结构与算法——树与二叉树

    😊各位小伙伴久等了,本专栏新文章出炉了!!! 我又回来啦,接下来的时间里,我会持续把数据结构与算法专栏更新完。 👉树型结构👈 是一类重要的 ✍非线性数据结构 ,其中以树和二叉树最为常用,直观来看,树是以分支关系定义的层次结构。树型结构在客观世界中

    2024年02月11日
    浏览(46)
  • 数据结构与算法之《二叉树》详解

    文章目录 一、树的概念及结构 二、二叉树的概念及结构 2、1 二叉树的概念 2、2 二叉树的特点 2、3 二叉树的结构(图片) 2、4 特殊的二叉树 三、二叉树的代码及思路实现 3、1 二叉树的存储结构 3、1、1 二叉树的顺序存储结构 3、1、2 二叉树的链式存储结构 3、2 二叉树链式

    2024年02月01日
    浏览(45)
  • 【数据结构和算法】---二叉树(1)--树概念及结构

    树是一种 非线性的数据结构 ,它是由n(n=0)个有限结点组成一个具有层次关系的集合。之所以叫它树,是因为将此结构倒转后与现实生活中的树极其相似,一个主干分出多个分支,分支还可继续分展。 有一个特殊的结点,称为 根结点 ,根节点没有前驱结点; 除根节点外,

    2024年02月03日
    浏览(43)
  • 【数据结构】二叉树基础OJ

    目录 1. 单值二叉树 2. 检查两颗树是否相同 3. 对称二叉树 4. 二叉树的前序遍历 5. 二叉树的中序遍历 6. 二叉树的后序遍历 7. 另一颗树的子树 8. 二叉树的结构及遍历 世界上没有不劳而获的东西! 链接 :力扣 代码1 : 思想 :(1)【左孩子的返回值是否相等+右孩子的返回值是

    2024年02月16日
    浏览(45)
  • 数据结构——二叉树基础结构篇(C语言)

    现在是北京时间2023年6月13日9点11分。从决定要开始减脂之后,饥饿总是伴随着我。一觉起来肚子咕咕叫,我还是想先把文章发了再吃第一餐。燕麦加蛋白粉几乎伴随了我大学的第一年早饭。昨天练了一个小时背,练背后还做了45分钟有氧。空腹训练没有影响我的训练状态。这

    2024年02月08日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包