树&&二叉树(递归实现)

树的基本概念

1、树的定义

      树是一种非线性的数据结构,是由n(n>=0)有限个数据的元素集合,形状像一颗倒过来的树。如图1:


       树是由唯一的(节点A)和若干互不相交的子树(如B,E,F,K,L这五个节点组成的树就称为一棵子树)组成的。其中的每一颗子树又是一棵树,也是由唯一根节点和互不相交的子树构成。因此,树的定义是递归的。值得注意的是,当一颗树有0个节点时,称这棵树为空树


2、树的基本术语

以图1的树为例:

(1)节点:树中每一个小圆圈都代表树的一个节点(A,B,C等都是节点),节点不仅包含了数据元素,而且包含指向子树的分支。例如,A节点既包含数据元素A,又包含3个指向子树的指针。

(2)节点的度:节点拥有的子树个数或分支个数。例如,A节点的度为3,M节点的度为0,H节点的度为1。

(3)树的度:树中各节点度的最大值。例如,图1所示树的度为3。

(4)叶子节点:又叫做终端节点或叶节点,☞度为0的节点。例如,F,G,I,J,K,L,M都是叶子节点。

(5)非终端节点:又叫做分支节点,☞度不为0的节点。如A,B,C,D,E,H都是非终端节点。非终端节点中根节点之外的其他节点又称作内部节点。如B,C,D,E,H都是内部节点。

(6)孩子:节点的子树的根。例如A节点的孩子节点为B,C,D。

(7)双亲:与孩子的定义相对应。如B,C,D的双亲节点为A。

(8)兄弟:同一个双亲的孩子之间互为兄弟。如B,C,D。

(9)祖先:从根到某节点的路径上的所有节点,都是这个节点的祖先。如K的祖先是A,B,E,因为从A到K的路径为A--B--E--K。

(10)子孙:以某节点为根的子树中的所有节点,都是该节点的子孙。如D的子孙节点为H,I,J,M。

(11)层次:从根开始,根为第一层,根的孩子为第二层,根的孩子的孩子为第三层,以此类推。

(12)树的高度:也叫做树的深度,☞树中节点的最大层次。图1的树深度为4。

(13)节点的深度和高度:节点的深度是从根节点算起的,根节点的深度为1;节点的高度是从最底层的叶子节点算起的,最底层叶子节点的高度为1。

(14)堂兄弟:双亲在同一层的节点互为堂兄弟。如G和H就互为堂兄弟。

(15

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值