Python-二叉树的遍历【广度、深度优先遍历】

1、简介

遍历:迭代所有元素一遍
树的遍历:对树中所有元素不重复地访问一遍,也称作扫描。
广度优先遍历
    层序遍历
深度优先遍历
    前序遍历
    中序遍历
    后序遍历
遍历序列:将树中所有元素遍历一遍后,得到的元素的序列。将层次结构转换成了线性结构

2、广度优先遍历

层序遍历

 

层序遍历是广度优先遍历。按照树的层次,从第一层开始,自左向右遍历元素。
遍历序列:ABCDEFGHI

3、深度优先遍历

设树的根结点为D,左子树为L,右子树为R,且要求L一定在R之前,则有下面几种遍历方式
1. 前序遍历,也叫先序遍历、也叫先根遍历,DLR
2. 中序遍历,也叫中根遍历,LDR
3. 后序遍历,也叫后根遍历,LRD

3.1、前序遍历DLR

从根结点开始,先左子树后右子树。每个子树内部依然是先根结点,再左子树后右子树。递归遍历。
遍历序列:A BDGH CEIF

3.2、中序遍历LDR

从根结点的左子树开始遍历,然后是根结点,再右子树。每个子树内部,也是先左子树,后根结点,再右子树。递归遍历。
左图遍历序列:GDHB A IECF
右图遍历序列:GDHB A EICF

 3.3、后序遍历LRD

先左子树,后右子树,再根结点。每个子树内部依然是先左子树,后右子树,再根结点。递归遍历。
遍历序列:GHDB IEFC A

 

posted @ 2023-07-25 18:47  小粉优化大师  阅读(87)  评论(0)    收藏  举报