|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
typedef char Elemtype;
typedef struct BiTNode
{
Elemtype data;
struct BiTNode *rchild,*lchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree T)
{
char c;
scanf("%c",&c);
if(c==' ')
{
T=NULL;
}else{
T=(BiTree )malloc(sizeof(BiTNode));
T->data=c;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void visit(char c,int level)
{
printf("%c 位于第 %d 层。\n",c,level);
}
void PreOrderTraverse(BiTree T,int level)
{
if(T)
{
visit(T->data,level);
PreOrderTraverse(T->lchild,level+1);
PreOrderTraverse(T->rchild,level+1);
}
}
int main()
{
int level=1;
BiTree T=NULL;
CreateBiTree(T);
PreOrderTraverse(T,level);
return 0;
}
在创建和遍历二叉树那里,为什么把第一个函数的参数改成BiTree T就不行了呢?
这只是一份拷贝的值。他改变了,外面的不会也跟着变。
|
|