TreeBinary.cpp ÆÄÀÏ
#include
using namespace std;
template
class Node{
public:
Node£¨£© {
left = 0;
right = 0;
}
Node£¨T _data£©:data£¨_data£© {};
template friend class TreeBinary;
T data;
Node* left;
Node* right;
};
template
class TreeBinary {
public:
TreeBinary£¨£©
:m_numNode£¨0£©
{
cout << "BT c o - n s t r u c t o r" << endl;
}
TreeBinary£¨T _data£©
:m_numNode£¨1£©
{
root = new Node£¨_data£©;
cout << "BT c o - n s t r u c t o r, data : " << root->data << endl;
}
~TreeBinary£¨£© {
RemoveAll£¨root£©;
cout << "BT destructor" << endl;
}
void RemoveAll£¨Node* delNode£© {
if £¨delNode£© {
RemoveAll£¨delNode->left£©;
RemoveAll£¨delNode->right£©;
cout << delNode->data << " delete\n";
delete delNode;
}
}
void PreorderPrint£¨£© {
Preorder£¨root£©;
}
void Preorder£¨Node* travel£© {
if £¨travel£© {
cout << "visit " << travel->data << endl;
Preorder£¨travel->left£©;
Preorder£¨travel->right£©;
}
}
void InorderPrint£¨£© {
Inorder£¨root£©;
}
void Inorder£¨Node* travel£© {
if £¨travel£© {
Inorder£¨travel->left£©;
cout << "visit " << travel->data << endl;
Inorder£¨travel->right£©;
}
}
void PostorderPrint£¨£© {
Postorder£¨root£©;
}
void Postorder£¨Node* travel£© {
if £¨travel£© {
Postorder£¨travel->left£©;
Postorder£¨travel->right£©;
cout << "visit " << travel->data << endl;
}
}
int GetNodeNumber£¨£© {
return m_numNode;
}
private:
Node* root;
int m_numNode;
};
ÀÌÈÄ »ó¼Ó¹ÞÀº TreeBinarySearch.cpp ÆÄÀÏ
#include "TreeBinary.cpp"
template
class TreeBinarySearch
:public TreeBinary //<<<<<<<<<<<<<<<<<<<< _data£© {
if £¨tmp->right£© tmp = tmp->right;
else {
tmp->right->data = _data;
return;
}
}
else {
if £¨tmp->left£© tmp = tmp->left;
else {
tmp->left->data = _data;
return;
}
}
}
}
};
int main£¨£© {
TreeBinarySearch B£¨1£©;
B.PreorderPrint£¨£©;
B.insert£¨2£©;
return 0;
}
¸ÞÀο¡¼ B.insert ÇÔ¼ö¸¦ ½ÇÇàÇϸé
rootºÎºÐÀ» ãÀ» ¼ö ¾ø´Ù°í ¶ß°Åµç¿ä.
m_numNodeµµ¿ä.. ÁÖ¼®Ã³¸®ÇÏ¸é ¿¡·¯¾øÀÌ Àß µÅ¿ä.
¿À·ù C2065 'root': ¼±¾ðµÇÁö ¾ÊÀº ½Äº°ÀÚÀÔ´Ï´Ù.
¶ó°í ¶ß°Åµç¿ä..
Çì´õÆÄÀϵµ include ÇÏ¿´°í, »ó¼Óµµ ÇØÁá°í..
Á¦°¡ ¾Æ´Â »ó¼ÓÀº child°¡ parent¸¦ »ó¼ÓÇϸé parent+£¨child¿¡¼ Ãß°¡ÇÑ ÄÚµåµé£© ÀΰɷΠ¾Æ´Âµ¥,,
¿Ö parentŬ·¡½ºÀÇ º¯¼ö¸¦ ¸øÃ£´Â´Ù°í ³ª¿Ã±î¿ä?