-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHuffmanBinNode.java
80 lines (65 loc) · 1.83 KB
/
HuffmanBinNode.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public class HuffmanBinNode<K> implements Comparable {
private double probability;
private K value;
private HuffmanBinNode<K> left;
private HuffmanBinNode<K> right;
public HuffmanBinNode() {
this.probability = -1.0;
this.right = null;
this.left = null;
}
public HuffmanBinNode(double probability) {
this.probability=probability;
this.right = null;
this.left = null;
}
public HuffmanBinNode(Double probability, K value) {
this.probability = probability;
this.value = value;
}
public HuffmanBinNode(double probability, HuffmanBinNode<K> right, HuffmanBinNode<K> left) {
this.probability = probability;
this.left = left;
this.right = right;
}
public boolean hasLeft() {
return this.left != null;
}
public boolean hasRight() {
return this.right != null;
}
public Double getProbability() {
return probability;
}
public void setProbability(Double probability) {
this.probability = probability;
}
public K getValue() {
return value;
}
public void setValue(K value) {
this.value = value;
}
public HuffmanBinNode<K> getLeft() {
return left;
}
public void setLeft(HuffmanBinNode<K> left) {
this.left = left;
}
public HuffmanBinNode<K> getRight() {
return right;
}
public void setRight(HuffmanBinNode<K> right) {
this.right = right;
}
@Override
public int compareTo(Object o) {
if (!(o instanceof HuffmanBinNode)) {
return 0;
}
HuffmanBinNode<K> other = (HuffmanBinNode<K>) o;
if (this.probability-other.probability>0) return 1;
else if (this.probability- other.probability<0) return -1;
return 0;
}
}