加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一文看懂数据结构中的树 值得收藏

发布时间:2019-09-04 05:24:20 所属栏目:建站 来源:优达学城Udacity
导读:副标题#e# 通常在开始学编程的时候,你会接触一些常用数据结构。 到最后一般会学到哈希表。对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表、队列和栈的各种知识。这些统称为线性数据结构,因为依逻辑次序从头排到尾。 当你开始

具体来讲,我们会先访问根结点1再访问其左孩子2,接着是2的左孩子3,到达叶子结点回溯一步,访问2的右孩子4,进一步回溯,继续顺序访问5,6和7。在输出遍历结果时,据父结点值相对子结点输出顺序的不同,深度优先遍历又可细分为先序、中序和后序遍历三种情况。

先序遍历

即直接按照我们对结点的访问顺序输出遍历结果即实现,父结点值被最先输出。代码:

一文看懂数据结构中的树 值得收藏

中序遍历

一文看懂数据结构中的树 值得收藏

中序遍历输出结果为:3–2–4–1–6–5–7。

左孩子值最先输出,然后是父结点,最后是右孩子。对应代码如下:

一文看懂数据结构中的树 值得收藏

后序遍历

一文看懂数据结构中的树 值得收藏

后序遍历输出结果为:3–4–2–6–7–5–1.

左右孩子值依次输出,最后是父结点,对应代码如下:

一文看懂数据结构中的树 值得收藏

广度优先搜索 (BFS)

BFS:按照结点深度逐层遍历树结构。

一文看懂数据结构中的树 值得收藏

再拿上面的图来实际解释这种方法:

一文看懂数据结构中的树 值得收藏

逐层每层从左到右进行遍历,对应遍历结果为:1–2–5–3–4–6–7。对应代码如下:

一文看懂数据结构中的树 值得收藏

你应该已经注意到了,我们要借助先进先出(FIFO)的队列(queue)结构完成操作,具体的出入队列顺序如下图所示:

一文看懂数据结构中的树 值得收藏

二叉搜索树

二叉搜索树又名有序二叉树,结点元素按固定次序排布,使得我们可以在进行查找等操作时使用二分搜索提高效率。——维基百科

它最明显的特征是父结点值大于左子树任意结点值,小于右子树任意结点值。

一文看懂数据结构中的树 值得收藏

上图以三个二叉树为例,哪个才是正确的呢?

A 左右子树需要进行交换。B 满足条件,是二叉搜索树。C 值为4的结点需要移至3的右孩子处

接下来进行二叉搜索插入、结点检索、结点删除以及平衡的解释。

插入

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读