当前位置:首页 » 操作系统 » 树深度优先算法

树深度优先算法

发布时间: 2024-09-17 03:26:58

python算法系列—深度优先遍历算法

一、什么是深度优先遍历
深度优先遍历算法是经典的图论算法。从某个节点v出发开始进行搜索。不断搜索直到该节点所有的边都被遍历完,当节点v所有的边都被遍历完以后,深度优先遍历算法则需要回溯到v以前驱节点来继续搜索这个节点。
注意:深度优先遍历问题一定要按照规则尝试所有的可能才行。

二、二叉树

2.二叉树类型
二叉树类型:空二叉树、满二叉树、完全二叉树、完美二叉树、平衡二叉树。

空二叉树:有零个节点
完美二叉树:每一层节点都是满的二叉树(如1中举例的图)
满二叉树:每一个节点都有零个或者两个子节点
完全二叉树:出最后一层外,每一层节点都是满的,并且最后一层节点全部从左排列
平衡二叉树:每个节点的两个子树的深度相差不超过1.

注:国内对完美二叉树和满二叉树定义相同
3.二叉树相关术语
术语 解释
度 节点的度为节点的子树个数
叶子节点 度为零的节点
分支节点 度不为零的节点
孩子节点 节点下的两个子节点
双亲节点 节点上一层的源节点
兄弟节点 拥有同一双亲节点的节点
根 二叉树的源头节点
深度 二叉树中节点的层的数量

DLR(先序):
LDR(中序):
LRD(后序):
注意:L代表左子树R代表右子树;D代表根

6.深度优先遍历和广度优先遍历
深度优先遍历:前序、中序和后序都是深度优先遍历
从根节点出发直奔最远节点,
广度优先遍历:首先访问举例根节点最近的节点,按层次递进,以广度优先遍历上图的顺序为:1-2-3-4-5-6-7
三、面试题+励志
企鹅运维面试题:
1.二叉树遍历顺序:看上文
2.用你熟悉的语言说说怎么创建二叉树? python看上文

⑵ 关于数据结构的深度优先遍历和广度优先遍历以及最小生成树 第四大题的第一题

首先看一下深度优先和广度优先怎么遍历:
深度优先遍历从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点进行访问,重复此步骤,直到所有结点都被访问完为止。
广度优先遍历从某个顶点出发,首先访问这个顶点,然后找出这个结点的所有未被访问的邻接点,访问完后再访问这些结点中第一个邻接点的所有结点,重复此方法,直到所有结点都被访问完为止。
在看题目,其要求按顺时针方向:
深度优先序列:V1 V2 V3 V5 V4
广度优先序列:V1 V2 V4 V3 V5
最小生成树,有两种方法,prim和kruskal算法。
这题最小生成树如下:
[(V4,V5),(V1,V4),(V2,V4),(V5,V3)],其中(V4,V5)表示V4和V5点之间连线。如下图类似(这里简单表示一下)。
V1 V2 V3
\ / /
V4----V5

热点内容
牌顺编程 发布:2024-11-24 20:56:23 浏览:728
金库门锁如何配置 发布:2024-11-24 20:55:46 浏览:952
如何编写服务器安装文档 发布:2024-11-24 20:46:09 浏览:470
什么安卓手机全方面可以超过苹果 发布:2024-11-24 20:30:35 浏览:800
面窝麻将脚本 发布:2024-11-24 20:29:16 浏览:234
安卓手机处理器八核是什么意思 发布:2024-11-24 20:29:11 浏览:175
安卓手机怎么内录直播 发布:2024-11-24 20:29:08 浏览:894
3d脚本反编译 发布:2024-11-24 20:27:09 浏览:56
思域哪个配置最好看 发布:2024-11-24 20:26:20 浏览:713
少年绘编程 发布:2024-11-24 20:07:04 浏览:311