【導(dǎo)讀】把原二叉樹的結(jié)點都變?yōu)?。–度數(shù)為1,則增加一個分支,空二叉樹的擴充二叉樹規(guī)。二叉樹的帶權(quán)的外部路徑長度。對于一組非負(fù)實數(shù){w1,w2,w3,…這棵二叉樹就稱為哈夫。曼樹或最優(yōu)二叉樹。①構(gòu)造由m棵二叉樹組成的樹林F={T1,T2,…④重復(fù)2、3步驟,直至F中只剩一棵樹為止。structHtNode//*哈夫曼樹結(jié)點的結(jié)構(gòu)。哈夫曼樹可定義為:。,wn},構(gòu)成n棵二叉樹的集合。,Tn},其中每一棵二叉樹Ti中只有一個帶權(quán)為wi的。樹,且新二叉樹的根結(jié)點的權(quán)值為其左右子樹根結(jié)點權(quán)值之和。③在F中刪除這兩棵樹,同時將新得到的二叉樹加入F中。左右選擇不同,得到的HuffMan樹形態(tài)不同,但WPL相同。存儲結(jié)構(gòu)可以有多種,如二叉鏈表、三叉鏈表等。–rlink:右孩子存儲位置,對于外部結(jié)點,無孩子,設(shè)為-1。假定外部結(jié)點個數(shù)為m,則內(nèi)部結(jié)點個數(shù)必為m-1,因此。最后得到的HuffMan樹必定有2m-1個結(jié)點。structHtTree/*哈夫曼樹類型*/. 哈夫曼算法例:d={d1,d2,…,dm}w={2,3,5,7,11,13,17,19,23,29,