C++ »ó¼Ó¿¡ ´ëÇØ Áú¹®ÀÖÀ¾´Ï´Ù. [6]

¡ã ¸Ç¹Ø ¡å
°í¿î¸»»ç¿ëÀÚ
¾Æ¹ÙŸ/ÂÊÁö/±Û°Ë»ö

2018-04-09 20:56:14
1 0 6 313

¨Û Ãßõ  ¨á ´ÜÃàURL
¡è º¹»ç ÈÄ ºÙ¿©³ÖÀ¸¼¼¿ä.
 ±â±â¸¦ °¨ÁöÇÏ¿© ÃÖÀû URL ·Î º¸³»ÁÝ´Ï´Ù.
°í¿î¸»»ç¿ëÀÚ
https://humoruniv.com/program5888 URL º¹»ç

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Ŭ·¡½ºÀÇ º¯¼ö¸¦ ¸øÃ£´Â´Ù°í ³ª¿Ã±î¿ä?

* ÄÁÅÙÃ÷ Ãâó : ÀÛ¼ºÀÚ º»ÀÎ
Áú¹®¿¡ ´äº¯Çϱâ

¨Û °Ô ½Ã ¹°    Ãß Ãµ ÇÏ ±â
  ·Î±×ÀÎ ¾øÀÌ Ãßõ°¡´ÉÇÕ´Ï´Ù.
ÃßõµÇ¾ú½À´Ï´Ù.
¨Û Ãßõ   ¨ä ¹Ý´ë   ¨Þ ´ä±Û   ¢Ç ¸ñ·Ï
¡ç µÚ·Î   ¡è ¸ÇÀ§   ¡é ¸Ç¹Ø   ¨· ½Å°í   ¢½ ½ºÅ©·¦
¡ç µÚ·Î   ¡è ¸ÇÀ§   ¡é ¸Ç¹Ø   ¨· ½Å°í   ¢½ ½ºÅ©·¦
´ä±Û ÀÛ¼ºÇϱâ (·Î±×ÀÎ ÇÊ¿ä)
·Î±×ÀÎ   ¸ÞÀÎ   »çÀÌÆ®¸Ê   PCÈ­¸é