#include<stdio.h>
#include<stdlib.h>
void inorder();
typedef struct node
{
   int data;
   struct node*left;
   struct node*right;     
}node;
void insert(node*,int);

int main()
{  
    node*root = (node*)malloc(sizeof(node));
    root=NULL;
    int select,data;
    while(1)
    {      
       printf("\n------------------\n(0)Exit\n(1)add&del\n(2)LookOrder\n");
       printf("select work:");
       scanf("%d",&select);    
       if(select==0)
       break;
       switch(select)
       {
          case 1:
               printf("Insert data:");
               scanf("%d",&data);
               insert(root,data);
               break;
          case 2:   
               printf("inorder :");
               inorder(root);
               break;
          default:
               printf("Error");  
       }
    }
    system("pause");
    return 0;
}
void insert(node*r,int data)
{
     node *newnode =(node*)malloc(sizeof(node)); //創造一個新node指標 
     newnode->left = newnode->right = NULL;
     newnode->data = data;
     if(r==NULL)//如果是一棵空樹 
     {    
         r = newnode;  //直接插入 
     }
     else
     {
         newnode = r;//新指標指向r 
         if(data<=newnode->data)//如果新insert的資料比該節點的資料小的話 
         {
             insert(newnode->left,data);//往左找    
         }
         else
         {
             printf("6");
             insert(newnode->right,data);//不然就往右邊找 
         }
     }
}
void inorder(node*r)
{
     if(r==NULL)
     {
        return ;
     }
     else
     {
         inorder(r->left);
         printf("%d",r->data);
         inorder(r->right);
     }
}
