请高手把下面这段C语言代码转化成JAVA语言
一个利用队列实现二叉树层次遍历的代码#defineM100#defineNull0#include<stdio.h>#include<malloc.h>typedefst...
一个利用队列实现二叉树层次遍历的代码#define M 100
#define Null 0
#include <stdio.h>
#include <malloc.h>
typedef struct node
{ int data;
struct node *lchild, *rchild;
} bitree;
bitree *que[M];
int front=0, rear=0;
bitree *creat( )
{ bitree *t;
int x;
scanf("%d", &x);
if (x==0)
t=Null;
else
{
t=malloc(sizeof(bitree));
t->data=x;
t->lchild=creat( );
t->rchild=creat( );
}
return t;
}
void enqueue(t)
bitree *t;
{ if(front!=(rear+1) % M)
{rear = (rear+1) % M;
que[rear]=t;
}
}
bitree *delqueue( )
{
if (front==rear)
return Null;
front=(front+1) % M;
return (que[front]);
}
void levorder ( t )
bitree *t;
{ bitree *p;
if(t!=Null)
{enqueue( t );
while(front!=rear)
{ p=delqueue( );
printf("%4d", p->data);
if(p->lchild!=Null)
enqueue(p->lchild);
if(p->rchild!=Null)
enqueue(p->rchild);}
}
}
main ( )
{ bitree *root;
printf("\n");
root=creat ( );
printf("\n");
levorder(root);
} 展开
#define Null 0
#include <stdio.h>
#include <malloc.h>
typedef struct node
{ int data;
struct node *lchild, *rchild;
} bitree;
bitree *que[M];
int front=0, rear=0;
bitree *creat( )
{ bitree *t;
int x;
scanf("%d", &x);
if (x==0)
t=Null;
else
{
t=malloc(sizeof(bitree));
t->data=x;
t->lchild=creat( );
t->rchild=creat( );
}
return t;
}
void enqueue(t)
bitree *t;
{ if(front!=(rear+1) % M)
{rear = (rear+1) % M;
que[rear]=t;
}
}
bitree *delqueue( )
{
if (front==rear)
return Null;
front=(front+1) % M;
return (que[front]);
}
void levorder ( t )
bitree *t;
{ bitree *p;
if(t!=Null)
{enqueue( t );
while(front!=rear)
{ p=delqueue( );
printf("%4d", p->data);
if(p->lchild!=Null)
enqueue(p->lchild);
if(p->rchild!=Null)
enqueue(p->rchild);}
}
}
main ( )
{ bitree *root;
printf("\n");
root=creat ( );
printf("\n");
levorder(root);
} 展开
1个回答
2014-11-10
展开全部
有指针,不好转。。。。。。实现同样的功能,还差不多。。。。。。那请百度 JAVA 二叉树
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询