数据结构----树的基本概念

之前学到的链表、队列、栈等结构都是线性结构,也就是一个结点的前后最多各有一个结点。但是树就不一样了,除了树根结点 (root) 没有父节点之外,其它结点都有一个父节点,可能有0个、1个或多个子节点。就是因为这种一对多的特殊结构,导致了树状结构的复杂性、以及算法的特殊性。树的两个特性:1、任意两个结点之间都有唯一的一条路径相连接;2、树中没有回路,也就是没有环状结构。
下面把树和各种类型的树进行完整的图示介绍。看到这个图是不是有一种眩晕的感觉,其实不用怕,这个章节并不难。

在这里插入图片描述
对于我们来说最重要的是二叉树。二叉树与一般的树的区别:二叉树中的任意一个结点,它的子节点最多只有2个。而一般的树的一个结点可以有任意多个子结点。二叉树中有一类特别的树----斜树 (左斜树、右斜树)。左斜树、右斜树跟之前学的链表非常相似,这里就不细说了。

在这里插入图片描述二叉树中有一种特殊的形式:完全二叉树。完全二叉树中又分为堆和满二叉树。
下图中,左边的是一般的二叉树。中间的是满二叉树。满二叉树就是从根节点到倒数第二层为止,每一个结点都有两个子节点,而且所有的叶子结点 (没有子节点的结点) 一定只在最下面一层。右边的是完全二叉树。完全二叉树中,根节点到倒数第二层结点一定可以构成一个满二叉树,最下面一层的叶子结点一定都在最左边,所有叶子结点中不存在空位。满二叉树一定是完全二叉树。

在这里插入图片描述在这里插入图片描述
好了,现在我们可以开始介绍树的一些算法了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值