53 lines
No EOL
874 B
C++
53 lines
No EOL
874 B
C++
#ifndef _binnode_hpp_
|
|
#define _binnode_hpp_
|
|
#include <iostream>
|
|
#include <string>
|
|
#define binNodeArray(T) binNode<T> *
|
|
|
|
template <class T>
|
|
class binNode
|
|
{
|
|
public:
|
|
T data;
|
|
std::string pos;
|
|
binNode *parent;
|
|
binNode *lc;
|
|
binNode *rc;
|
|
~binNode()
|
|
{
|
|
if(isLC(this))
|
|
parent->lc = NULL;
|
|
else
|
|
parent->rc = NULL;
|
|
delete lc;
|
|
delete rc;
|
|
}
|
|
binNode()
|
|
{
|
|
parent = NULL;
|
|
lc = NULL;
|
|
rc = NULL;
|
|
}
|
|
binNode(binNode *p, binNode *l, binNode *r)
|
|
{
|
|
parent = p;
|
|
lc = l;
|
|
rc = r;
|
|
}
|
|
|
|
bool operator>(binNode const &bn)
|
|
{
|
|
return data > bn.data;
|
|
}
|
|
|
|
bool operator<(binNode const &bn)
|
|
{
|
|
return data < bn.data;
|
|
}
|
|
|
|
bool operator==(binNode const &bn)
|
|
{
|
|
return data == bn.data;
|
|
}
|
|
};
|
|
#endif |