数据结构笔记10树(中)(《大话数据结构》学习笔记)

本文介绍了二叉树的定义,强调了其在数据结构中的高效查找特性,并通过猜数字游戏生动地展示了二叉树的查找过程。接着,详细阐述了二叉树的特点,包括最多两个子节点、左子树与右子树的顺序性,并讨论了不同形态的二叉树,如斜树、满二叉树和完全二叉树。此外,还探讨了二叉树的存储结构,如顺序存储和二叉链表,以及遍历二叉树的四种方法:前序、中序、后序和层序遍历。最后,讲述了如何根据遍历序列建立二叉树。
摘要由CSDN通过智能技术生成

【1】二叉树的定义

现在我们来做个游戏,我在纸上 已经写好了 一个 100 以内的正整数数字,请大家想办法猜出我写的是哪一个?注意你们猪的数字不能超过 7 个 , 我的回答只会告诉你是"大了"或"小了。
这个游戏在一些电视节目中,猜测一些商品的定价时常会使用。我看到过有些人是一点一点的数字累加的,比如 5 、 10 、 15 、 20 这样猜,这样的猜数策略大低级了 ,显然是没有学过数据结构和算法的人才做得出的事。其实这是一个很经典的折半查找算法。如果我们用下图(下三层省略)的办法,就一定能在 7 次以内,猜出结果来。
在这里插入图片描述

由于是 100 以内的正整数,所以我们先猜 50 ( 100 的一半) ,被告之"大了气于是再猜 25 ( 50 的一半) ,被告之"小了 气再猜 37 ( 2 5 与 50 的中间数) ,小了,于是猜 43 , 大了, 40 ,大了, 38 ,小了, 39 ,完全正确。

在这里插入图片描述
我们发现,如果用这种方式进行查找,效率高得不是一点点。对于折半查找的详细讲解,我们后面章节再说。不过对于这种在某个阶段都是两种结果的情形,比如开和关、 0 和 1 、真和假、上和下 、对与错,正面与反面等, 都适 合用 树状结构来建模,而这种树是一种很特殊的树状结构,叫做二叉树 。

在这里插入图片描述

【2】二叉树特点

二叉树的特点有:

每个结点最多有两棵子树,所以二叉树中不存在度大于 2 的结 点.注意不是只有两棵子树,而是最多有.没有子树或者有一棵子树都是可以的 .

左子树和右子树是有顺序的,次序不能任意颠倒。就像人 是双手、双脚,但显然左手、左脚和右手、右脚是不一样的,右手戴左 手套、右脚穿 左鞋都会极其别扭和难受。即使树中某结点只有 一棵 子树,也要区分它是左子树还是右子树. 下图中,树 1 和树 2 是同 一 棵树,但它们却是不同的 二 叉树 。 就好像你一不小心,摔伤了手,伤的是左手还是右手,对你的生活影响度是完全不同的。

在这里插入图片描述

二叉树具有五种基本形态:
1 空二叉树。
2 只有一个根结点。
3 . 根结点只有左子树 。
4 . 根结点只有右子树。
5 . 根结点既有左子树又有右子树。

【3】特殊二叉树

1. 斜树
顾名思义,斜树一 定要是斜的,但是往哪斜还是有讲究 。 所有的结点都只有左子树的 二叉树叫左斜树 。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树 。 斜树有很明显的特点,就是每一层都只有一个结点,结点的个数与二叉树的深度相同 。
有人会想,这也能叫树呀, 与我们的统性表结构不是一样吗。对的,其实线性表结构就可以理解为是树的 一种极其特殊的表现形式 。

2. 满二叉树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值