二叉树的建立
#include#include using namespace std; struct node { int Value; node *Right; node *Left; }; node* Create() { node* root=new node(); root->Value=1;//计算机提供资源 root->Right=new node();//左右节点的空间 root->Left=new node(); return root; } node* Insertinto(node *root) { int value=0; node* temp=new node();//指针 temp=root; while(cin>>value) { if (temp->Left->Value==0) { temp->Left->Value=value; temp->Left->Left=new node(); temp->Left->Right=new node(); } else if (temp->Right->Value==0) { temp->Right->Value=value; temp->Right->Left=new node(); temp->Right->Right=new node(); } else { temp=temp->Left; temp->Left->Value=value; temp->Left->Left=new node(); temp->Left->Right=new node(); } if (value==0) break; } return root; } void trave(node*root) { if(root->Left->Value!=0) trave(root->Left); if(root->Right->Value!=0) trave(root->Right); cout< Value<<" "; } int main() { node*p=Create(); p=Insertinto(p);//3 2 5 4 6 7 9 8 0 trave(p);//树的形状/状,后序遍历 }



