数据结构(八)--二叉树

本文介绍了树的基本概念,包括路径、根节点、父节点、子节点、叶子节点、子树、访问和层。特别强调了二叉树的特点,即每个节点最多有两个子节点。详细讲解了二叉树的插入、查找和删除操作,并概述了前序、中序和后序遍历的顺序。最后提到了实际代码实现的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、树的基本概念

1.优点

有序数组插入数据项和删除数据项太慢。

链表查找数据太慢。

在树中能快速的查找、插入、删除数据项。

2.路径

顺着连接节点的边从一个节点到另一个节点,所经过的节点顺序排列称为路径。

3.根

树最上面的节点称为根节点。一棵树只有一个根,而且从根到任何节点有且只有一条路径。

4.父节点

每个节点都有一条边向上连接到另一个节点,这个节点就称为是下面这个节点的父节点。

5.子节点

每个节点都有一条边向下连接到另一个节点,下面的节点就是该节点的子节点。

6.叶子节点

没有子节点的节点称为叶子节点。

7.子树

每个节点都可以作为一个子树的根,它和它所有的子节点,子节点的子节点组合起来就是一个子树。

8.访问

访问一个节点是为了在这个节点上执行一些操作,如查看节点的数据项,如果仅仅是经过一个节点,不认为是访问了这个节点。

9.层

一个节点的层数是指从从根开始到这个节点有多少代。根为0层。

10.二叉树

树的每个节点最多只能有两个子节点的树,称为二叉树。

二、对二叉树的操作

1.插入节点

从根节点开始查找一个相应的节点,这个节点就成为新插入节点的父节点,当父节点找到后,通过判断新节点的值比父节点的值的大小来决定是连接到左子节点还是右子节点。

2.查找节点

从节点开始查找,如果查找的节点值比当前的节点的值小,则继续查找其左子树,否则查找其右子树。

3.遍历树

根据特定的顺序访问树的每一个节点,根据顺序的不同分为前序遍历、中序遍历、后序遍历。

前序遍历:根节点、左子树,右子树。

中序遍历:左子树、根节点、右子树。

后序遍历:左子树、右子树、根节点。

4.删除节点

在删除之前要查找到需删除的节点找到节点后,这个要删除的节点有三种情况需要考虑。

       4.1 该节点是叶子节点,没有子节点。

             只需要改变该节点的父节点 引用值,将指向该节点的引               用设置为null就可以了。

      4.2  该节点有一个子节点

            改变父节点的引用,将其直接指向要删除节点的子节点。

      4.3 该节点有2个子节点

            需要使用它的中序后继来代替该节点。

5.代码实现

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值