日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

tinyxml2遍历所有节点_Python实现二叉树的遍历

發(fā)布時間:2024/7/5 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tinyxml2遍历所有节点_Python实现二叉树的遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Outline:

  • 二叉樹概念
  • 二叉樹遍歷(前序、中序、后序、寬度優(yōu)先遍歷)的迭代實現和遞歸實現;
  • 二叉樹的深度,二叉樹到leaf的所有路徑。
  • 樹(Tree)

    是一種抽象數據類型(ADT),是由n(n>=0)個有限節(jié)點來模擬的一個具有樹狀結構性質的數據集合。

    二叉樹 Binary Tree

    • 至少有一個節(jié)點(根節(jié)點)
    • 每個節(jié)點最多有2棵子樹(左右子樹)(即每個節(jié)點的度小于3)
    • 左子樹和右子樹是有順序的,次序不能任意顛倒。
    • 即使樹中某節(jié)點只有一棵子樹,也要區(qū)分它是左子樹還是右子樹。

    Python定義二叉樹類:

    Class

    二叉樹分類:

    • 滿二叉樹
    • 完全二叉樹
    • 二叉查找樹(Binary Search Tree - BST)

    二叉查找樹

    root node的值(5),大于其left subtree中任意一個節(jié)點的值,小于其right subtree中任意一節(jié)點的值。

    【說人話】:以root節(jié)點為界,小于root節(jié)點的值保存在left節(jié)點,大于root節(jié)點的值保存在right節(jié)點。

    • 任意節(jié)點的左、右子樹也分別為二叉查找樹;
    • 沒有鍵值相等的節(jié)點

    A binary search tree (BST) is a form of rooted binary tree.

    Each node within a binary tree has an associated payload and references to the root node of any right or left subtrees at that point.

    Any payload contained within any left subtree must be less than the value of the payload of node N and, conversely, that any payload contained within any right subtree must exceed the value of the payload of node N.


    二叉樹遍歷

    二叉樹的遍歷:

    • 深度優(yōu)先(DFS: Depth-First Search)
    • 寬度優(yōu)先(BFS: Breadth-First Search)

    其中深度優(yōu)先遍歷又分為:

    • 前序遍歷:根-左-右
    • 中序遍歷:左-根-右
    • 后序遍歷:左-右-根

    前序遍歷:root-left-right: 5-3-2-4-7-6

    遞歸

    def

    中序遍歷:left-root-right : 2-3-4-5-7-6

    遞歸

    def

    后序遍歷:left-right-root: 2-4-3-6-7-5

    遞歸

    def

    寬度優(yōu)先遍歷(BFS):自頂向下: 5-3-7-2-4-6

    迭代

    def

    總結

    以上是生活随笔為你收集整理的tinyxml2遍历所有节点_Python实现二叉树的遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。