Binary Search Tree Insertion in C++



1 #include <iostream> 2 #include <cstdlib> 3 struct BSTNode{ 4 int v; 5 struct BSTNode *left,*right; 6 }; 7 8 struct BSTNode *root=NULL; 9 10 struct BSTNode* createNode(int data){ 11 struct BSTNode *newNode; 12 newNode=(struct BSTNode*)malloc(sizeof(struct BSTNode)); 13 newNode->v=data; 14 newNode->left=NULL; 15 newNode->right=NULL; 16 return newNode; 17 } 18 19 void insertion(struct BSTNode **node,int data){ 20 if(*node==NULL){ 21 *node=createNode(data); 22 }else if(data<(*node)->v){ 23 insertion(&(*node)->left,data); 24 }else if(data>(*node)->v){ 25 insertion(&(*node)->right,data); 26 } 27 } 28 void traverse(struct BSTNode *node){ 29 if(node!=NULL){ 30 traverse(node->left); 31 std::cout<<node->v; 32 traverse(node->right); 33 } 34 return; 35 } 36 int main(){ 37 int data,ch; 38 insertion(&root,10); 39 insertion(&root,16); 40 insertion(&root,8); 41 insertion(&root,20); 42 insertion(&root,21); 43 traverse(root); 44 std::cin>>data; 45 }

 

posted @ 2014-01-04 15:26  丸子No1  阅读(205)  评论(0编辑  收藏  举报