一聚教程网:一个值得你收藏的教程网站

热门教程

二叉排序树的建立及中序遍历

时间:2022-07-02 10:57:48 编辑:袖梨 来源:一聚教程网


#include
#include
#include
#define MAX 100
typedef struct tnode
{
int data;
struct tnode *lchild,*rchild;
}TNODE;

void create();
void insert(int );  /*插入结点*/
void inorder(TNODE *);  /*中序遍历*/

TNODE *root=NULL;

void main()
{
clrscr();
create();
inorder(root);
}

void inorder(TNODE *ptr)
{
if(ptr!=NULL)
  {
  inorder(
  ptr->lchild);
  printf("%d ",ptr->data);
  inorder(ptr->rchild);
  }
}

void create()
{
int n,i;
int k[MAX];
printf("please input the node number:");
scanf("%d",&n);
for(i=0;i  scanf("%d",&k[i]);
for(i=0;i  insert(k[i]);
}

void insert(int m)
{
TNODE *p1,*p2;
if(root==NULL)
   {
   root=(TNODE *)malloc(sizeof(TNODE));
   root->data=m;
   root->lchild=root->rchild=NULL;
   }
else
   {
    p1=root;
    while(m!=p1->data)
       {
        if((mdata)&&(p1->lchild!=NULL))  p1=p1->lchild;
        else if((m>p1->data)&&(p1->rchild!=NULL))  p1=p1->rchild;
        else if((mdata)&&(p1->lchild==NULL))
             {
             p2=(TNODE *)malloc(sizeof(TNODE));
             p2->data=m;
             p2->lchild=p2->rchild=NULL;
             p1->lchild=p2;
             return;
             }
        else if((m>p1->data)&&(p