| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 819 人关注过本帖
标题:关于二叉树的问题
只看楼主 加入收藏
leon57
Rank: 1
来 自:xznu
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-7-19
收藏
 问题点数:0 回复次数:1 
关于二叉树的问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef char TElemType;


typedef struct BiTNode
{
    TElemType data;
    struct BiTNode *Lchild;
    struct BiTNode *Rchild;
}BiTNode,*BiTree;

void CreateBiTree(BiTree &root)
{
    char ch;
    ch=getchar();
    if(ch=='#') root=NULL;
    else
    {
        root=(BiTree)malloc(sizeof(BiTNode));
        root->data=ch;
        CreateBiTree(root->Lchild);
        CreateBiTree(root->Rchild);
    }
}

void PreOrder(BiTree &root)
{
    if(root!=NULL)
    {
        printf("%c",root->data);
        PreOrder(root->Lchild);
        PreOrder(root->Rchild);
    }
}

void InOrder(BiTree &root)
{
    if(root!=NULL)
    {
        InOrder(root->Lchild);
        printf("%c",root->data);
        InOrder(root->Lchild);
    }
}

void PostOrder(BiTree &root)
{
    if(root!=NULL)
    {
        PostOrder(root->Lchild);
        PostOrder(root->Rchild);
        printf("%c",root->data);
    }
}

int leaf(BiTree &root)
{
    int LeafCount;
    if(root==NULL)
        LeafCount=0;
    else if((root->Lchild==NULL)&&(root->Rchild==NULL))
        LeafCount=1;
    else
        LeafCount=leaf(root->Lchild)+leaf(root->Rchild);
    return LeafCount;
}

void main()
{
    BiTree T;
    int a,b;
    scanf("%s",&T);
    CreateBiTree(T);
    printf("先序遍历:1");
    printf("中序遍历:2");
    printf("后序遍历:3");
    printf("叶子结点总数:4");
    printf("退出:0");
    scanf("%d",&a);
    while(a!=0)
    {
        switch(a)
        {
        case 1:PreOrder(T);
            printf("\n");
            break;
        case 2:InOrder(T);
            printf("\n");
            break;
        case 3:PostOrder(T);
            printf("\n");
            break;
        case 4:printf("叶子结点总数为:");
            b=leaf(T);
            printf("%d",b);
            printf("\n");
        default:printf("error\n");
        }
        printf("先序遍历:1");
        printf("中序遍历:2");
        printf("后序遍历:3");
        printf("叶子结点总数:4");
        printf("退出:0");
        scanf("%d",&a);
    }
}
在输入的时候为什么输入不进去?
搜索更多相关主题的帖子: 二叉树 
2008-11-01 22:18
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
你输的啥?

这个Create程序接受什么输入格式的?我没看懂。
2008-11-01 22:27
快速回复:关于二叉树的问题
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014288 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved