一:哈夫曼樹的構造
①權值,帶權路徑長度。
②一組確定權值的葉子節點可以構造多個不同的二叉樹,但是帶權路徑長度min的是哈夫曼樹
③算法基本思想及其實操圖片演示
注:存儲結構和偽代碼
1 初始化:
構造2n-1棵只有一個根節點的二叉樹,parent=rchild=lchild=-1;
其中前n個元素給定權值w【n】
2 選取權值最小的兩顆二叉樹進行n-1次合并:
代碼演示:
首先將新建二叉樹的權值weight為權值最小的兩個weight的和
2和3的雙親下標parent改為新建二叉樹的下標k(這一步就相當于把這兩個權值最小的節點從2n-1棵只有根節點的二叉樹中刪除了)
左孩子lchild更改為i1,rchild更改為i2
小結:先求weight,在改兩個parent,最后改child