关于二叉排序树
/***二叉排序树****/#include<iostream>using namespace std;typedef struct NODE{ int data; NODE *lift; NODE *right;}noed,*pnoed;pnoed updata(pnoed head,pnoed data) //添加节点,返回根节点指针{ if(head==0)//空树,data作为头结点 { head=data; head->lift=NULL; head->right=NULL; return data; } else { pnoed ptemp=head; if(ptemp->lift==NULL&&ptemp->data>=data->data)//小于根节点,根节点无左子树,插入左子树 { ptemp->lift=data; data->lift=NULL; data->right=NULL; return head; } else if(ptemp->right==NULL&&ptemp->data<data->data)//大于根节点,根节点无右子树,插入右子树 { ptemp->right=data; data->lift=NULL; data->right=NULL; return head; } else if(ptemp->data>=data->data)//递归查找插入位置 updata(ptemp->lift,data); else updata(ptemp->right,data); }}int main(){ int nums=10000; int s,n=0; pnoed head=NULL; pnoed p=new noed;/*word是一个每行一个数字的文本*/ fstream in("d://word.txt",ios::in); cout<<"请稍候:"<<endl; n=0; while(in>>s) { n++; if(n>=10000&&n%10000==0)cout<<"已载入:"<<n<<"个."<<endl; p->data=s; head=updata(head,p);//发现问题的地方. } in.close(); cout<<"载入完成"<<endl; system("pause"); delete p; return 0;}