Python入门篇-数据结构树(tree)的遍历
Python入门篇-数据结构树(tree)的遍历
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.遍历
迭代所有元素一遍。
二.树的遍历
对树中所有元素不重复地访问一遍,也称作扫描。
三.广度优先遍历
层序遍历:
(1)按照树的层次,从第一层开始,自左向右遍历元素
(2)遍历序列如下图所示,(ABCDEFGHI)
四.深度优先遍历
设树的根结点为D,左子树为L,右子树为R,且要求L一定在R之前,则有下面几种遍历方式:
前序遍历,也叫先序遍历、也叫先根遍历,DLR
中序遍历,也叫中根遍历,LDR
后序遍历,也叫后根遍历,LRD
1>.前序遍历DLR
从根结点开始,先左子树后右子树
每个子树内部依然是先根结点,再左子树后右子树。递归遍历
遍历序列如下图所示:(ABDGHCEIF)
2>.中序遍历
从根结点的左子树开始遍历,然后是根结点,再右子树
每个子树内部,也是先左子树,后根结点,再右子树。递归遍历
遍历序列
左图:GDHBAIECF
右图:GDHBAEICF
3>.后序遍历
先左子树,后右子树,再根结点
每个子树内部依然是先左子树,后右子树,再根结点。递归遍历
遍历序列如下图所示:(GHDBIEFCA)
五.遍历序列
将树中所有元素遍历一遍后,得到的元素的序列。将层次结构转换成了线性结构
Python入门篇-数据结构树(tree)的遍历的更多相关文章
- Python入门篇-数据结构树(tree)篇
Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...
- Python入门篇-数据结构堆排序Heap Sort
Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树 每个非叶子结点都要大于或者等于其左右孩子结点 ...
- Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict)
Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.封装和结构 #!/usr/bin/env pytho ...
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
- Python入门篇-基础语法
Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...
- Python入门篇-面向对象概述
Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...
- Python入门篇-高阶函数
Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数 1>.First Class Object 函数在Python中是一等公民 函数也 ...
- Python入门篇-内建函数
Python入门篇-内建函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见的内建函数案例 1>.标识id 返回对象的唯一标识,CPython返回内存地址. #!/ ...
- Python入门篇-StringIO和BytesIO
Python入门篇-StringIO和BytesIO 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringIO(用于文本处理) 1>.使用案例 #!/usr/bin ...
随机推荐
- mysql数据库每天备份
以备份mysql下的test数据库为例,备份到/home/data 使用mysqldunp命令 dump.sh mysqldump -h127. -uadmin -P3306 -ppassword t ...
- springboot自定义类@Resource注入为null的问题
最近用spring boot ,在controller外面即自定义的类里报错 java.lang.NullPointerException debug了下发现@Resource注入为null 查了不少 ...
- 【记录】【java】反射设值取值
1.设值 /** * 根据属性名设置属性值 * * @param fieldName * @param object * @return */ public boolean setFieldValue ...
- 1.2.1LVM逻辑卷镜像实现方法
LVM逻辑卷镜像实现方法 本文演示了在CentOS5系统中实现LVM逻辑卷镜像的方法.LVM的镜像功能,有点儿类似于Raid1,即多块儿磁盘互相同步,确保资料不会丢失. 创建物理卷,卷组的步骤这里就先 ...
- 【剑指offer】数组中只出现一次的数
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 分析: 经典的异或技巧题 两个相同的数字异或的结果为0,一个数和0异或的结果是其本身,假设现在那 ...
- 【转帖】Infor转型十年启示录:ERP套件厂商为什么要做云平台?
Infor转型十年启示录:ERP套件厂商为什么要做云平台? https://www.tmtpost.com/4199274.html 好像浪潮国际 就是用的infor的ERP软件. 秦聪慧• 2019 ...
- identity 基础表没有创建 aspnetuserclaims aspnetuserlogins
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuild ...
- go包管理
摘自: http://blueskykong.com/2019/02/18/go-dep-1/ https://www.cnblogs.com/apocelipes/p/10295096.html#v ...
- 基于Spark2.X系列的累加器和Streaming基础
一.累加器API 关于累加器,前面我也写了一篇博客,顺便粘贴这儿,对比学习,Spark学习之编程进阶总结(一).Spark 2.0系列引入了一个更加简单和更高性能的累加器API,如在1.X版本中可以这 ...
- Codeforces Round #499 (Div. 1) F. Tree
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...