二叉查找树
二叉查找树
1 #include <iostream> 2 #include <cstdlib> 3 using namespace std; 4 typedef int type; 5 typedef struct bstreenode{ 6 type key; 7 struct bstreenode *parent; 8 struct bstreenode *left; 9 struct bstreenode *right; 10 }node,*bstree; 11 node* createNode(type key,node* parent,node* left,node* right){ 12 node *p=(node *)malloc(sizeof(node)); 13 p->key=key; 14 p->parent=parent; 15 p->left=left; 16 p->right=right; 17 return p; 18 } 19 void insertNode(bstree tree,node* p){ 20 //找位置 21 node* pos=tree; 22 cout<<(pos==NULL)<<endl; 23 while(pos!=NULL){ 24 if(p->key<pos->key){//向左 25 pos=pos->left; 26 }else{ 27 pos=pos->right; 28 } 29 } 30 //插入节点 31 cout<<"111"<<endl; 32 node* f=pos->parent; 33 cout<<f<<endl; 34 p->parent=f; 35 if(f==NULL){ 36 tree=p; 37 }else if(f->key>p->key){//左孩子 38 f->left=p; 39 }else{ 40 f->right=p; 41 } 42 } 43 void insertNode_out(bstree tree,type key){ 44 node* p=createNode(key,NULL,NULL,NULL); 45 insertNode(tree,p); 46 } 47 48 49 int main(){ 50 bstree tree=(node*)malloc(sizeof(node)); 51 tree->left=tree->right=tree->parent=NULL; 52 insertNode_out(tree,5); 53 insertNode_out(tree,6); 54 insertNode_out(tree,4); 55 insertNode_out(tree,7); 56 insertNode_out(tree,1); 57 insertNode_out(tree,8); 58 return 0; 59 }
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672