树的一些概念及实现方法

简介: 千字文章带你进入数据结构——树的世界!本篇为你介绍树的基本概念及实现方法举例。以后会给大家介绍最重要的数——二叉树的所有知识及代码实现!

重要概念

图片.png

    节点的度:一个节点含有的子树的个数称为该节点的度(就是看有多少根线和此节点相连); 如上图:A的度为6。

   叶节点或终端节点:度为0的节点称为叶节点(往下找没有和此节点相连的点);如上图:B、C、H、I...等节点为叶节点。

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

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

   孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点(通俗点讲就是和父节点相对称);如上图:B是A的子节点。

   兄弟节点:具有相同父节点的节点称为兄弟节点(亲兄弟);如上图B、C是兄弟节点,B、D是兄弟节点,C、D是兄弟节点,他们都有一个相同的父节点A。

  树的度:一棵树中,最大的节点的度称为树的度;如上图:树的度为6(因为A拥有最大节点度)。

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

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

   节点的祖先:从根到该节点所经分支上所有节点;如上图:A是所有节点的祖先(A是B的父节点,也可以说A是B的祖先)。

  子孙:以某节点为根的子树中任一节点都成为该节点的子孙。如上图:所有节点都是A的子孙;以E为根的子树,I、J、P、Q都是E的子孙。

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


树的表示方式

①顺序表存孩子的指针

C语言

structTreeNode{
intdata ;
structTreeNode*child1;
structTreeNode*child2;
    ...
}

C++

structTreeNode{
intdata ;
vector<structTreeNode*>childs;
}

②左孩子右兄弟

typedefintDataType;
structNode{
structNode*_firstChild1;  //第一个孩子的结点structNode*_pNextBrother; //指向其下一个兄弟结点Datatype_data;             //结点中的数据域}

图片.png

图片.png


③双亲表示法

图片.png


树在实际中的运用

表示文件系统的目录树结构。

图片.png

目录
相关文章
|
7月前
|
存储 算法
树(Tree) - 概念与基础
树(Tree) - 概念与基础
122 2
|
7月前
|
存储 人工智能 算法
数据结构入门 — 树的概念与结构
数据结构入门 — 树的概念与结构
62 0
|
算法 C语言
【数据结构与算法】树、二叉树的概念及结构(详解)(上)
【数据结构与算法】树、二叉树的概念及结构(详解)(上)
树和二叉树的概念以及结构
树和二叉树的概念以及结构
|
6月前
|
存储 算法 Linux
【数据结构和算法】---二叉树(1)--树概念及结构
【数据结构和算法】---二叉树(1)--树概念及结构
56 0
|
2月前
|
存储
二叉树的概念和结构
二叉树的概念和结构
62 0
|
6月前
|
机器学习/深度学习 存储 算法
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
数据结构和算法学习记录——树(基本介绍、树的定义、树的特点、树的一些基本术语、树的表示、儿子-兄弟表示法)
108 0
|
7月前
|
存储
数据结构-树的介绍、树的定义和基本术语
树是一种非线性的数据结构,是以分支关系定义的层次结构,比如人类社会中的族谱、及各种机制、组织的关系都可以用树形象的表示。重点学习二叉树的存储和相关操作,还要讨论树、森林、二叉树的转换关系。
106 0
|
7月前
|
存储
B树的原理与实现
B树的原理与实现
106 0
|
存储 JavaScript
50 # 树的概念
50 # 树的概念
53 0