-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnode.cpp
More file actions
65 lines (49 loc) · 982 Bytes
/
node.cpp
File metadata and controls
65 lines (49 loc) · 982 Bytes
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
#include "node.h"
//////////////////
// GENERIC NODE //
//////////////////
Node::Node (int frequency) {
_frequency = frequency;
}
int Node::get_frequency() const {
return _frequency;
}
bool Node::Compare::operator() (Node *fst, Node *snd)
{
return fst->get_frequency() > snd->get_frequency();
}
Node::~Node() {}
///////////////
// LEAF NODE //
///////////////
Leaf::Leaf(int frequency, char element) :
Node(frequency)
{
_element = element;
}
bool Leaf::is_leaf() const {
return true;
}
char Leaf::get_element() const {
return _element;
}
Leaf::~Leaf() {}
/////////////////
// MIDDLE NODE //
/////////////////
Group::Group (int frequency, Node *left, Node *right) :
Node(frequency)
{
_left_child = left;
_right_child = right;
}
bool Group::is_leaf() const {
return false;
}
Node* Group::get_left_child() const {
return _left_child;
}
Node* Group::get_right_child() const {
return _right_child;
}
Group::~Group() {}