回 帖 发 新 帖 刷新版面

主题:急救!!!关于二叉树的遍历

希望哪位高手帮我解决,谢谢。我想遍历一个二叉树。
/ 二叉树的遍历.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
#define FALSE -1
typedef int ElemType;
typedef struct BiTNode

   ElemType data;
   struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int Create_BiTree(BiTree &T)
{
    int n;
    scanf("%d",&n);
    if(n==0)T=NULL;
    else{
        if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))return FALSE;
        T->data=n;
        Create_BiTree(T->lchild);
        Create_BiTree(T->rchild);
        }

int PreOrder_BiTree(BiTree T)
{
    if(T)printf("%d",T->data);
    PreOrder_BiTree(T->lchild);
    PreOrder_BiTree(T->rchild);
}void main()
{
    BiTree T;
    Create_BiTree(&T);
    PreOrder_BiTree(T);
}

回复列表 (共3个回复)

沙发

int PreOrder_BiTree(BiTree T)
{
    if(T)printf("%d",T->data);
    PreOrder_BiTree(T->lchild);
    PreOrder_BiTree(T->rchild);
}
改成:
int PreOrder_BiTree(BiTree T)
{
    if(T)
 {  
  printf("%d",T->data);
    PreOrder_BiTree(T->lchild);
    PreOrder_BiTree(T->rchild);
  }
}
原因是什么,请自己思考一下。

板凳

int 作PreOrder_BiTree()的返回类型也没有必要。可以用void PreOrder_BiTree()

3 楼

那个错误我知道,虽然编译时没错误,但还是运行不了.希望你再看看.多谢.

我来回复

您尚未登录,请登录后再回复。点此登录或注册