| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 637 人关注过本帖
标题:二叉树程序如何的退出输入?
取消只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
 问题点数:0 回复次数:0 
二叉树程序如何的退出输入?
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "malloc.h"
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;

typedef struct BiTNode
{
    int data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

Status CreateBiTree(BiTree &T)//创建二叉树
{  
        char ch;
    scanf("%c",&ch);
    if (ch=='#')
        T=NULL;
    else
    {
        if (!(T=(BiTNode*)malloc(sizeof(BiTNode)) ))
        exit (OVERFLOW);
        T->data=ch;
        CreateBiTree(T->lchild);
        CreateBiTree(T->rchild);
    }
    return OK;

}//CreateBiTree


Status PreOrderTraverse(BiTree &t)//先序遍历二叉树 ,例如实现先序的输入输出,我该如何输入结点的值然后在输出结点的值?
{
    if(t!=NULL)
    {
        printf("%c",t->data);
        PreOrderTraverse(t->lchild);
        PreOrderTraverse(t->rchild);
    }
    return OK;
}

Status InOrderTraverse(BiTree &t)
{
//中序遍历二叉树
if(t!=NULL)
{
InOrderTraverse(t->lchild);
printf("%c",t->data);
InOrderTraverse(t->rchild);
}
return OK;
}

Status PostOrderTraverse(BiTree &t){
//后序遍历二叉树
if(t!=NULL)
{
PostOrderTraverse(t->lchild);
PostOrderTraverse(t->rchild);
printf("%c",t->data);
}
return OK;
}


int main(int argc, char* argv[])
{
    BiTree T;
    CreateBiTree(T);
    printf("PreOrderTraverse:");
    PreOrderTraverse(T);
    printf("\n");

    printf("InOrderTraverse:");
    InOrderTraverse(T);
    printf("\n");

    printf("PostOrderTraverse:");
    PostOrderTraverse(T);
    printf("\n");
    return 0;
}
2010-05-05 15:00
快速回复:二叉树程序如何的退出输入?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016372 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved