数据结构--树

本文详细介绍了数据结构中的树概念,包括树的定义、特性和节点的关系。接着深入探讨了二叉树的定义、类型、遍历方法以及二叉查找树的性质。进一步讨论了平衡二叉树,如AVL树和红黑树,强调了它们在保持查找效率平衡方面的重要性。最后,简要提到了B树和B+树的区别以及字典树的优缺点。
摘要由CSDN通过智能技术生成

                                                    树

一、 树

树(Tree)是元素的集合,每棵树由多个节点(node)组成,用以储存元素。某些节点之间存在着一定的关系,用连线表示,连线称为边(edge)或者链接。边的上端点称为父节点,下端称为子节点。每个节点可以有多个子节点,而该节点则是相应子节点的父节点。但是每个节点只能有一个父节点(只有一个例外,也就是根节点,它没有父节点),如图中第一棵树的 S 节点即为根节点。而没有子节点的节点则称为叶子节点或叶节点,如上图中第一棵树的 A、R、X 节点。E、X 的父节点是一个节点,所以它们被称为兄弟节点。

特性

1树是元素的集合

2该集合可以为空。此时树中没有元素,称之为空树(empty tree)。

3如果该集合不为空,那么该集合至少含有一个根节点以及 0 个或多个子树。根节点与它的子树的根节点用一个边(edge)或链接相连。

节点n的高度 : n节点到叶子节点所有路径上包含节点个数的最大值。叶子节点的高度为1,往上节点的高度依次递增。

节点n的深度 : 从根节点到节点n唯一的路径的长,根节点深度为1

层数:根节点为第一层,往下一次递增。

m阶为一节点至多有m棵子树 ,也就是说B树上的结点最多只能有m棵子树

二、 二叉树

1 定义

二叉树是一种特殊的数据结构,顾名思义,二叉树只有两个,也就是两个子节点:左子节点右子节点。其中,左子节点是左子树的根节点,右子节点是右子树的根节点。当然,这并不是说,二叉树一定要求每个节点都必须有两个子节点,有的节点只有左子节点,而有的节点只有右子节点。

编号 2 3 的这两个。其中,编号 2 的二叉树中,叶节点全都在最底层,除了叶节点之外,每个节点都于左右两个子节点,这种二叉树就叫满二叉树。而编号为 3 的二叉树中,叶子结点在最底下两层,其中,最后一层的节点都靠左排列,并且,除了最后一层,其他层的节点数都要达到最大,这种二叉树叫做完全二叉树

1 满二叉树

满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值,所有叶子结点必须在同一层上。

  满二叉树的性质:

  1) 一颗树深度为h,最大层数为k,深度与最大层数相同,k=h;

  2) 叶子数为2h;

  3) k层的结点数是:<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haikuotiankongdong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值