先序建树并先序遍历?哪错了?

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:39:24
#include <stdio.h>
#define NULL 0

int n = 0;
struct treeNode *head = NULL;

struct treeNode
{
int data;
struct treeNode *lc;
struct treeNode *rc;
};

struct treeNode* creatTree(struct treeNode *getTree)
{

int temp;
scanf("%d",&temp);
if(temp==0)
getTree = NULL;

else
{
getTree = (struct treeNode*)malloc(sizeof(struct treeNode));
getTree->data = temp;
if(n==0)
{
head = getTree;
n++;
}

creatTree(getTree->lc);
creatTree(getTree->rc);
}
return(head);
}

void visit(int get)
{

printf("%d\n",get);
}

void Preorder (struct treeNode *getTree)
{
if (getTree)
{
visit(getTree->data);
Preorder(getTree->lc);

//修改好,编译通过.输入0表示上一次输入为叶结点.
//当不想输入数据了,就一直输入0,直到退出.
#include<stdio.h>
#include<memory.h>

typedef struct TREENODE
{
int data;
struct TREENODE *lc;
struct TREENODE *rc;
}treeNode;

treeNode *creatTree()
{
treeNode *getTree=NULL;
int temp;
scanf("%d",&temp);
if(temp==0) return NULL;
else
{
getTree = (treeNode*)malloc(sizeof(treeNode));
getTree->data = temp;
getTree->lc =creatTree();
getTree->rc=creatTree();
}
return getTree;
}

void visit(int get)
{

printf("%d\n",get);
}

void Preorder (treeNode *getTree)
{
if (getTree)
{
visit(getTree->data);
Preorder(getTree->lc);
Preorder(getTree->rc);
}
}

int n = 0;
treeNode *head = NULL;

main()
{
treeNode *getHead =