簡體   English   中英

非二叉樹python中的順序

[英]inorder in non binary tree python

我想在 python 中構建一個函數,它獲取一些非二叉樹並將樹中的值從左到右按順序放在列表中。

您的代碼不包括所有子節點,因為您專門從first_halfsecond_half列表中選擇一個節點來遞歸並忽略其他所有內容。 可能您想循環遍歷這些列表中的每一個:

    mid = int(len(children) / 2) + 1
    first_half = children[:mid]
    second_half = children[mid:]
    for child in first_half:
        child.iters(by_order)
    by_order.append(self)
    for child in second_half
        child.iters(by_order)

值得注意的是,這個順序似乎有點尷尬。 您選擇將父節點固定在其子節點的正中間(或盡可能靠近,對於奇數個子節點),但這有點隨意。 雖然子節點有明確的順序,但不一定有明確的理由按與它們的任何特定關系對父節點進行排序。 實際上,對於某些類型的非二叉樹(如 B 樹),樹的每個節點中存儲有多個值,並且適當的中序遍歷會將它們交錯在子節點的值之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM