C語言實現哈夫曼樹的建立

2021-10-23 07:45:46 字數 1056 閱讀 6672

建立哈弗曼樹,也就是把一片森林轉換成一棵樹,遵循權重越大的離根節點越近,權重越小的離根節點越遠的原則。

例如a,b,c,d四棵樹組成的森林:權重分別是3,6,7,8

完整**

#include

#include

#define node 10

//葉子結點數量

#define maxnode 2*node-1

//總結點數量

typedef

struct huffmantree huffmantree,

*hfnode;

intselect

(huffmantree* t,

int*s1,

int*s2)

else

i++;}

while

( i <= maxnode)

else

i++;}

else

i++;}

i =1;

while

( i <= maxnode && m2 ==-1

)else

}else

i++;}

while

( i <= maxnode)

else

else

i++;}

}else

i++;}

return m1 + m2;

}void

creathf

(hfnode *t)

for(i = node +

1; i <= maxnode; i++)}

void

disp

(huffmantree* t)

}int

main()

執行結果:

C語言實現哈夫曼樹

include include typedef struct nodebinode void show binode root if root r null 哈夫曼樹 void a1 權值陣列,為方便直接從小到大有序 int n 6,x,y,z,i,j binode root null binode...

C語言實現哈夫曼樹

ddl是第一生產力,公理 哈夫曼樹又稱最優二叉樹。它是 n 個帶權葉子結點構成的所有二叉樹中,帶權路徑長度 wpl 最小的二叉樹。就是構造乙個哈夫曼樹,然後輸出最小帶權路徑 wpl 大致思路 每個結點自成一棵樹,成森林 選擇所有樹的根結點 不為null 中權值最小的兩個,合併,新malloc乙個節點...

用C語言實現哈夫曼樹

哈夫曼樹c語言實現 include include typedef struct huffmannode huffmannode typedef struct heapnode heapnode 全域性變數 int heapsize 堆大小 int num 記錄字元數量 heapnode heap ...