python 求節點的哈夫曼的帶權路徑長度

2021-10-02 12:10:59 字數 786 閱讀 3158

【問題描述】

已知輸入一串正整數,正整數之間用空格鍵分開,請建立乙個哈夫曼樹,以輸入的數字為葉節點,求這棵哈夫曼樹的帶權路徑長度。

【輸入形式】

首先輸入正整數的個數,然後接下來為接下來的正整數,正整數個數不超過10個

【輸出形式】

輸出相應的權值

【樣例輸入】

5 4 5 6 7 8

【樣例輸出】

n =

list

(map

(int

,input()

.strip(

).split())

)geshu=n[0]

qita=n[1:

]#print(len(qita))

'''a=min(qita)

print(a)

'''u=

0def

count

(qita)

: i=

0 s=

0global u

while

len(qita)!=1

: a=

min(qita)

qita.remove(a)

b=min(qita)

qita.remove(b)

c=a+b

i=i+

1 s+=i*c

count(qita)

u+=s

count(qita)

print

(u)

哈夫曼樹 哈夫曼樹求帶權路徑和

首先要了解哈夫曼樹的一些概念 帶權路徑 每個葉子結點都有權值,對於某葉子結點來說,它的帶權路徑就是 結點權值 從根節點到該結點的路徑長度 哈夫曼樹的構造方法 兩個權值最小的葉子結點作為兄弟去構成乙個非葉節點。該父親非葉節點的權值 二者之和 之前我只知道這些基本概念,求帶權路徑和的時候也只是 數數 數...

資料結構 求節點的哈夫曼的帶權路徑長度

問題描述 已知輸入一串正整數,正整數之間用空格鍵分開,請建立乙個哈夫曼樹,以輸入的數字為葉節點,求這棵哈夫曼樹的帶權路徑長度。輸入形式 首先輸入正整數的個數,然後接下來為接下來的正整數,正整數個數不超過10個 輸出形式 輸出相應的權值 樣例輸入 5 4 5 6 7 8 樣例輸出 69求哈夫曼樹的演算...

哈夫曼樹與哈夫曼編碼的實現 python

建立節點類,用於每個節點的生成 class hfmnode def init self self.name none self.weight none self.leftchild none self.rightchild none self.parent none 構建哈夫曼樹 def creat...