c++ stack 遍历_python实现二叉树的遍历以及其他基本操作
主要內(nèi)容:
首先,先定義二叉樹(shù)類(python3),代碼如下:
class內(nèi)容1:二叉樹(shù)的遍歷
二叉樹(shù)的遍歷分深度優(yōu)先遍歷(DFS)和寬度優(yōu)先遍歷(BFS)。其中深度優(yōu)先遍歷又分為先序遍歷,中序遍歷,后序遍歷。因?yàn)槎鏄?shù)是遞歸類數(shù)據(jù)結(jié)構(gòu),因此大部分關(guān)于二叉樹(shù)的操作都可以通過(guò)遞歸實(shí)現(xiàn)。下面將介紹二叉樹(shù)幾種遍歷的實(shí)現(xiàn)代碼以及思路。
1.1 先序遍歷:
遍歷順序:根節(jié)點(diǎn)——左子節(jié)點(diǎn)——右子節(jié)點(diǎn)(A-B-D-E-C-F)。
遞歸實(shí)現(xiàn):
def迭代實(shí)現(xiàn):
def1.2 中序遍歷
遍歷順序:左子節(jié)點(diǎn)——根節(jié)點(diǎn)——右子節(jié)點(diǎn)(D-B-E-A-C-F)
遞歸實(shí)現(xiàn):
def迭代實(shí)現(xiàn):
def1.3 后序遍歷
遍歷順序:左子節(jié)點(diǎn)——右子節(jié)點(diǎn)——根節(jié)點(diǎn)(D-E-B-F-C-A)
遞歸實(shí)現(xiàn):
def迭代實(shí)現(xiàn):
def1.4 層次遍歷
遍歷順序:一層一層的遍歷(A-B-C-D-E-F)
迭代實(shí)現(xiàn):
def內(nèi)容2:基本操作
2.1 二叉樹(shù)的最大深度
基本思路就是遞歸,當(dāng)前樹(shù)的最大深度等于(1+max(左子樹(shù)最大深度,右子樹(shù)最大深度))。代碼如下:
def2.2 二叉樹(shù)的最小深度
最小深度是從根節(jié)點(diǎn)到最近葉子節(jié)點(diǎn)的最短路徑上的節(jié)點(diǎn)數(shù)量。可以通過(guò)遞歸求左右節(jié)點(diǎn)的最小深度的較小值,也可以層序遍歷找到第一個(gè)葉子節(jié)點(diǎn)所在的層數(shù)。
遞歸方法:
class迭代方法:
class2.3 二叉樹(shù)的所有路徑
根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的所有路徑。
def總結(jié)
以上是生活随笔為你收集整理的c++ stack 遍历_python实现二叉树的遍历以及其他基本操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 索尼发布WH-CH720N主动降噪耳机:
- 下一篇: 树莓派python交互界面实例_树莓派综