数据结构(六)——树

二叉树的存储表示,一般树和森林与二叉树的转换关系
1. 树的基本定义

  • 树是由一个集合以及在该集合上定义的一宗关系构成的。集合中的元素称为树的节点,所定义的关系称为父子关系。
  • 树的递归定义:假设树是n个结点的有限集。它:
    1)或者是一颗空树(n=0),空树中不包含任何节点
    2)或者是一颗非空树,有且只有一个根节点root,当n>1时,其余节点可分为m个互不相交的有限集T1,T2,…Tm

在这里插入图片描述

  • ** 树的节点包含一个数据元素及若干指向其子树的若干分支 **节点的层次从根开始定义,层次为0的结点是根节点,其子树的根的层次数为1.若节点在L层,其子树的根就在L+1层。
  • 树种节点最大层次数称为树的深度或高度。树种节点也有高度,其高度是以该节点为根的树的高度。
  • 结点拥有的子树的数目称为结点的
  • 路径:树中k+1个结点通过k条边连接构成的序列在这里插入图片描述
  • 森林: 互不相交的树的集合
    在这里插入图片描述
    基本操作包括:getSize()、getRoot()、getParent(x) 、getFirstChild(x) 、getNextSibling(x)、getHeight(x)

2. 二叉树: 每个结点的度不超过2的有序树

3. 二叉树的性质:
(1)二叉树的第i层最多有2i个结点
(2)满二叉树&完全二叉树:
若在一棵满二叉树中,在最下层从最右侧起去掉相邻的若干叶子结点,得到的二叉树即为完全二叉树
在这里插入图片描述
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

4. 树、森林
树的存储结构主要有三种:双亲表示法,孩子链表示法,孩子兄弟表示法
分别举例
双亲表示法:结点指向父节点在这里插入图片描述
孩子链表表示法:一个线性表存储树的所有结点信息,称为结点表。每个结点建立一个孩子表。
孩子表只存储孩子结点的地址。
在这里插入图片描述
孩子兄弟表示法:每个结点除了data外,还包含分别指向该节点第一个孩子和右邻兄弟的两个域
在这里插入图片描述
5. Huffman树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值