X Tutup
package Codes.GreddyAlgorithm; import java.util.PriorityQueue; class Node { char ch; int freq; Node left, right; Node (char c, int f, Node l, Node r){ ch=c; freq=f; left=l; right=r; } } public class HuffManCoding { static void huffManCode(char arr[], int val[]){ PriorityQueue pq= new PriorityQueue<>((a, b)-> a.freq-b.freq); for(int i=0;i1){ Node l=pq.poll(); Node r=pq.poll(); pq.add(new Node('$', l.freq+r.freq,l, r)); } printTree(pq.peek(), ""); } static void printTree(Node root , String str){ if(root==null) return; if(root.ch!='$'){ System.out.print(root.ch+" "+str); System.out.println(); } printTree(root.left, str+"0"); printTree(root.right,str+"1"); } public static void main(String[] args) { char arr[]={'a', 'd', 'b', 'e', 'f'}; int val[]={10, 50, 20, 40, 80}; huffManCode(arr, val); } }
X Tutup