codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> using namespace std; class BinaryTreeNode { private: unsigned int value; BinaryTreeNode* leftNode; BinaryTreeNode* rightNode; public: BinaryTreeNode(unsigned int value) : leftNode(NULL), rightNode(NULL) { this->value = value; }; ~BinaryTreeNode() { cout << "delete node (" << value << ")" << endl; if(leftNode != NULL) { delete leftNode; leftNode = NULL; } if(rightNode != NULL) { delete rightNode; rightNode = NULL; } }; unsigned int getValue() { return value; } BinaryTreeNode* getLeftNode() { return leftNode; }; BinaryTreeNode* getRightNode() { return rightNode; }; }; class BinaryTree { BinaryTreeNode* rootNode; public: BinaryTree() : rootNode(NULL) { }; ~BinaryTree() { if(rootNode != NULL) { delete rootNode; rootNode = NULL; } }; void addNode(unsigned int value) { addNode(value, rootNode); }; void addNode(unsigned int value, BinaryTreeNode* rootNode) { if(rootNode == NULL) { rootNode = new BinaryTreeNode(value); } else { if(value < rootNode->getValue()) { addNode(value, rootNode->getLeftNode()); } else if(value > rootNode->getValue()) { addNode(value, rootNode->getRightNode()); } else { cout << "thers is node with "<< value << " value already" << endl; } } }; void searchNode(unsigned int value) { searchNode(value, rootNode); }; void searchNode(unsigned int value, BinaryTreeNode* rootNode) { if(rootNode == NULL) { cout << "no match" << endl; } else { if(value < rootNode->getValue()) { searchNode(value, rootNode->getLeftNode()); } else if(value > rootNode->getValue()) { searchNode(value, rootNode->getRightNode()); } else { cout << "value found! left : " << rootNode->getLeftNode()->getValue() << ", right : " << rootNode->getRightNode()->getValue() << endl; } } }; }; int main() { BinaryTree tree; tree.addNode(100); tree.addNode(10); tree.addNode(10); tree.addNode(15); tree.addNode(150); tree.addNode(180); tree.addNode(140); tree.searchNode(100); tree.searchNode(10); return 0; }
Private
[
?
]
Run code
Submit