Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package huffman;
- import java.util.ArrayList;
- import java.util.Collections;
- public class Huffman
- {
- private ArrayList<Entry> list = new ArrayList<Entry>();
- private ArrayList<Entry> boom = new ArrayList<Entry>();
- private String input;
- private String code = "";
- public Huffman(String s)
- {
- input = s;
- }
- public void temp()
- {
- for (Entry e : boom)
- {
- System.out.println("Char: '" + e.getChar() + "' freq: " + e.getFreq() + "");
- }
- }
- public void createCode(Entry e)
- {
- }
- public void maakBoom()
- {
- while(list.size() > 1)
- {
- //maak eerst 2 elementen met de laagste frequenty
- Entry e1 = list.remove(0);
- Entry e2 = list.remove(0);
- int count = e1.getFreq() + e2.getFreq();//bereken gezamelijke frequentie
- Entry root = new Entry('\u0000', count);// \\u000 == null voor char volgens googel
- root.setLeftChild(e1);//maak 2 kinderen
- root.setRightChild(e2);
- boom.add(root);
- sortList();
- maakBoom();
- }
- }
- public void calcFreq()
- {
- char[] c = input.toCharArray();
- Entry e = null;
- for (int i = 0; i < c.length; i++)
- {
- if (list.size() == 0)
- {
- Entry e2 = new Entry(c[i], 1);// de 1 == de frequenty
- list.add(e2);
- }
- else
- // de lijst met letters != leeg
- {
- boolean komtvoor = false;
- for (int listint = 0; listint < list.size(); listint++)
- {
- e = list.get(listint);
- if (c[i] == e.getChar())
- {
- int freq = e.getFreq();
- freq++;
- e.setFreq(freq);
- komtvoor = true;
- }
- }
- if (!komtvoor)
- {
- Entry charding = new Entry(c[i], 1);
- list.add(charding);
- }
- }
- }
- System.out.println("**********FREQUENTIES CALCULATED************");
- }
- public void dispFreq()
- {
- for (int i = 0; i < list.size(); i++)
- {
- Entry e = list.get(i);
- System.out.println("De char: '" + e.getChar() + "' komt " + e.frequenty + " keer voor in de string!");
- }
- System.out.println("**********LIST PRINTED************");
- }
- public void sortList()
- {
- CharCountComparator bla = new CharCountComparator();
- Collections.sort(list, bla);
- System.out.println("**********LIST SORTED************");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement