树的定义

本文介绍了树这种非线性数据结构的基本概念,包括空树、根结点、子树、结点的度、前驱和后继等核心元素。通过实例展示了树的度如何计算,以及树的深度或高度的定义。此外,还提到了树的存储结构,如类图GTree和GTreeNode,用于实现树结构的操作。
摘要由CSDN通过智能技术生成

前言

在这里插入图片描述
树是一种非线性的数据结构,树是由n(n>=0)个结点组成的有限集合,如果n=0称为空树,如果n>0则包含根结点,根结点只有直接后继,但没有直接前驱,除根以外的其他结点划分为m(m>=0)个互不相交的有限集合T0,T1…Tm-1,每个集合又是一颗树,并且称之为根的子树(sub tree),可以看出树也是递归的一种
树中度的概念

1.树的结点包含一个数据及若干指向子树的分支
2.结点拥有的子树数目称为结点的度
  度为0的结点称为叶结点
  度不为0的结点称为分支结点
3.树的度定义为所有结点中度的最大值

如上图所示,K结点的度为0,H结点的度为1,A结点的度为3,所以该树的度为3
树中的前驱和后继

1.结点的直接后继称为该结点的孩子,相应的该结点称为孩子的双亲
2.结点的孩子的孩子的....称为该结点的子孙,相应的该结点称为子孙的祖先
3.同一个双亲的孩子之间互称兄弟

入上图所示,K和L为兄弟,A为BCD的双亲,D为HIJS的双亲,特别注意的是树中结点的最大层次称为树的深度或高度,即上述树的高度为4
树的存储与定义
在这里插入图片描述
上图是树的类图,GTree为通用树结构,每个结点可以存在多个后继结点,GTreeNode能够包含任意多指向后继结点的指针,实现树结构的所有操作,GTree的实现架构如下所示
在这里插入图片描述
GTree.h

#ifndef GTREE_H
#define GTREE_H
#include "Tree.h"
#include "GTreeNode.h"
namespace CGSLib
{
   
  template <typename T>
  class GTree : public Tree<T>
  {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值