#include "node.h"
//****************************************************************************
//
// Function: Node
//
// Purpose: default c-tor
//
// Parameters: none
//
// Calls: none
//
// Time Comp: O(1)
//
// Space Com: O(1)
//
//****************************************************************************
Node::Node()
{
for(size_t i(0); i < 9; ++i)
{
data[i] = 0;
}
weight = 0;
left = NULL;
right = NULL;
}
//****************************************************************************
//
// Function: Node
//
// Purpose: creates node with given elements as data
//
// Parameters: {a, b, ... , i} - data from file
//
// Calls: none
//
// Time Comp: O(1)
//
// Space Com: O(1)
//
//****************************************************************************
Node::Node(char a, char b, char c, char d, char e, char f, char g, char h, char i)
{
data[0] = a - 48;
data[1] = b - 48;
data[2] = c - 48;
data[3] = d - 48;
data[4] = e - 48;
data[5] = f - 48;
data[6] = g - 48;
data[7] = h - 48;
data[8] = i - 48;
left = NULL;
right = NULL;
weight = 1;
}
//****************************************************************************
//
// Function: at_right
//
// Purpose: returns right pointer
//
// Parameters: none
//
// Calls: none
//
// Time Comp: O(1)
//
// Space Com: O(1)
//
//****************************************************************************
Node* Node::at_right()
{
return right;
}
//****************************************************************************
//
// Function: at_left
//
// Purpose: returns left pointer
//
// Parameters: none
//
// Calls: none
//
// Time Comp: O(1)
//
// Space Com: O(1)
//
//****************************************************************************
Node* Node::at_left()
{
return left;
}
//****************************************************************************
//
// Function: set_code
//
// Purpose: takes input and sets it as the code for that data
//
// Parameters: sz - size of code
// in - code for certain data
//
// Calls: new
//
// Time Comp: O(size of code)
//
// Space Com: O(1)
//
//****************************************************************************
void Node::set_code(size_t sz, char in[])
{
code = new char[sz];
code_size = sz;
for(size_t i(0); i < sz; ++i)
{
code[i] = in[i];
}
}
//****************************************************************************
//
// Function: get_data
//
// Purpose: return the value of the node
//
// Parameters: none
//
// Calls: none
//
// Time Comp: O(1)
//
// Space Com: O(1)
//
//****************************************************************************
size_t Node::get_data()
{
return(data[0] * 100000000 + data[1] * 10000000 + data[2] * 1000000 +
data[3] * 100000 + data[4] * 10000 + data[5] * 1000 +
data[6] * 100 + data[7] * 10 + data[8]);
}