aboutsummaryrefslogtreecommitdiffstats
path: root/Huffman.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Huffman.cs')
-rw-r--r--Huffman.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Huffman.cs b/Huffman.cs
new file mode 100644
index 0000000..0fb4462
--- /dev/null
+++ b/Huffman.cs
@@ -0,0 +1,43 @@
+/* filename: Huffman.cs
+ * Class: CS 456-001
+ * Professor: Dr. John Matta
+ * Due Date: Sept. 20th, 2021
+ * Name:
+ * Partner:
+ */
+ //TODO: ADD NAMES
+
+public class Huffman {
+ private List<Node> C;
+ private PriorityQueue pq;
+ private Node huffmanTree;
+ public Huffman(List<Node> C) {
+ //initialize
+ this.C = new List<Node>(C);
+ pq = new PriorityQueue();
+ Node huffmanTree = null;
+ }
+ private void setHuffmanTree() {
+
+ for(int i = 1; i < C.Count; i++) {
+
+ Node x, y;
+ Node z = new Node();
+
+ z.left = x = extractMin(pq);
+ z.right = y = extractMin(pq);
+ z.freq = x.freq + y.freq;
+
+ insert(pq, z);
+ }
+
+ huffmanTree = extractMin(pq);
+ }
+
+ public Node getHuffmanTree() {
+ if(huffmanTree == null) {
+ setHuffmanTree();
+ }
+ return huffmanTree;
+ }
+}