⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1234.c

📁 这是一个中序遍历二叉树的VC实现
💻 C
字号:
#include<stdio.h>
#define null 0
int counter=0;
typedef struct btreenode
{
int data;
struct btreenode  *lchild;
struct btreenode  *rchild;
}bnode;

bnode  *create(int x,bnode *lbt,bnode *rbt)
{
bnode *p;
p=(bnode*)malloc(sizeof(bnode));
p->data=x;
p->lchild=lbt;
p->rchild=rbt;
return(p);
}
bnode *ins_lchild(bnode *p,int x)
{bnode *q;
if(p==null)
printf("Illegal insert.");
else
{
q=(bnode*)malloc(sizeof(bnode));
q->data=x;
q->lchild=null;
q->rchild=null;
/*if(p->lchild!=null)
q->rchild=p->lchild;*/
p->lchild=q;
}
}

bnode *ins_rchild(bnode *p,int x)
{bnode *q;
if(p==null)
printf("Illegal insert");
else
{q=(bnode*)malloc(sizeof(bnode));
q->data=x;
q->lchild=null;
q->rchild=null;
/*if(p->rchild!=null)
q->lchild=p->rchild;*/
p->rchild=q;
}
}



/*void inorder(bnode *p)    
{
if(p==null);
return;

if(p->lchild!=null)
  inorder(p->lchild);
printf("%d",p->data);
if(p->rchild!=null)
  inorder(p->rchild);
}
*/
void inorder(bnode *p)
{
if(p==null)
return;
else
{
//printf("%d\t %u\t %d\t %u\t  %u\t \n ",++counter,p,p->data,p->lchild,p->rchild);
if(p->lchild!=null)
inorder(p->lchild);
printf("%d\t %u\t %d\t %u\t %u\t \n ",++counter,p,p->data,p->lchild,p->rchild);
if(p->rchild!=null)
inorder(p->rchild);
}
}


/*void preorder(bnode *p)    
{
if(p==null);
return;
printf("%d",p->data);
if(p->lchild!=null)
 preorder(p->lchild);
if(p->rchild!=null)
 preorder(p->rchild);
}
*/





 main()
 {
 bnode *bt,*p,*q;
 int x;
 printf("Input root:");
 scanf("%d",&x);
 p=create(x,null,null);
 bt=p;
 scanf("%d",&x);
 while(x!=-1)
 {
 p=bt;
 q=p;
 while(x!=p->data&&q!=null)

{
 p=q;
 if(x<p->data)
 q=p->lchild;
 else
 q=p->rchild;
 }
 if(x==p->data)
 {
 printf("The number is always egxit.");
 return;
 }


 else
 if(x<p->data)
 ins_lchild(p,x);
 else
 ins_rchild(p,x);
 scanf("%d",&x);
 }
 p=bt;
 printf("中序遍历二叉树:\n");
 printf("inorder:");
 printf("\n");
 printf("number\t address\t data\t lchild\t\t rchild\n");
 //prorder(p);
  

 //printf("preorder:");
 //preorder(p);
 //printf("\n");



 inorder(p);
 printf("\n");
  

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -