Vijay Meena
11/30/2008 9:10:00 PM
Hi,
I cant think of an implementation of inorder tree traversal for my
binary tree class given below -
class BTree {
private:
struct Node {
int key;
Node* parent;
Node* left;
Node* right;
Node(int key, Node* parent, Node* left, Node* right);
}* root;
public:
BTree();
void treeInsert(int key);
void treePrint(void); //inorder traversal
//some more API function here
};
inline BTree::BTree() {
root = 0;
}
inline BTree::Node::Node(int key, Node* parent, Node* left, Node*
right) {
this->key = key;
this->parent = parent;
this->right = right;
this->left = left;
}
void BTree::treeInsert(int key) {
Node* node = new Node(key, 0, 0, 0);
Node* parentNode = 0;
Node* placementNode = root;
while(placementNode) {
parentNode = placementNode;
if(node->key < placementNode->key)
placementNode = placementNode->left;
else
placementNode = placementNode->right;
}
node->parent = parentNode;
if(!parentNode)
root = node;
else
if(placementNode == parentNode->left)
parentNode->left = node;
else
parentNode->right = node;
}
void BTree::printTree(void) {
if(!root)
return;
//--- how to implement inorder traversal here ?
}
//main function should be something like -
int main(int argc, char *argv[]) {
BTree btree;
btree.treeInsert(4);
btree.printTree();
}