簡體   English   中英

在Python中,從嵌套元組到二叉樹的邊緣

[英]From nested tuples to edges of a binomial tree, in Python

什么是將嵌套元組結構(即重新組合二項式/二叉樹)轉換為

t = (4, (3, 5, (2, 4, 6, (1, 3, 5, 7))))

到邊的(有序的)元組

((4,3), (4,5),                               # step 1 edges
 (3,2), (3,4),  (5,4), (5,6),                # step 2 edges
 (2,1), (2,3),  (4,3), (4,5),  (6,5), (6,7)) # step 3 edges

每個節點通向一對子節點,一個在父節點之下,一個在父節點之上。 因此,4導致3和5。 3導致2和4; 等等。

元組t表示以下二叉樹結構

在此處輸入圖片說明

def g(t):
    res = []
    for i,x in enumerate(t[:-1]):
        res.append((x, t[-1][i]))
        res.append((x, t[-1][i+1]))
    return res

def h(t):
    if isinstance((t[-1]), tuple):
        return g(t) + h(t[-1])
    else:
        return []

t = (4, (3, 5, (2, 4, 6, (1, 3, 5, 7))))
print h(t)

暫無
暫無

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

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