| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:二叉树的创建与遍历问题???
只看楼主 加入收藏
Glost
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:54
专家分:48
注 册:2010-10-5
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:4 
二叉树的创建与遍历问题???
#include <stdio.h>
#include <stdlib.h>
typedef struct binarytree
{
    char data;
    struct binarytree *lchild;
    struct binarytree *rchild;
}node;
typedef node* Btree;
void create(Btree *t)
{
    char ch;
    if((ch=getchar())=='#')
        *t = NULL;
    else
    {
        *t = (node *)malloc(sizeof(node));
        (*t)->data = ch;
        (*t)->lchild = (*t)->rchild = NULL;
        create(&(*t)->lchild);
        create(&(*t)->rchild);
    }
}

void preorder(Btree t)
{
    if(t!=NULL)
    {
        printf("%c\n",t->data);
        preorder(t->lchild);
        preorder(t->rchild);
    }
}

void inorder(Btree t)
{
    if(t!=NULL)
    {
        inorder(t->lchild);
        printf("%c",t->data);
        inorder(t->rchild);
    }
}

void postorder(Btree t)
{
    if(t!=NULL)
    {
        postorder(t->lchild);
        postorder(t->rchild);
        printf("%c",t->data);
    }
}

int main(void)
{
    Btree p=NULL;
    create(&p);
    printf("Preoder traverse:\n");
    preorder(p);
    printf("\n");
    printf("Inorder traverse:\n");
    inorder(p);
    printf("\n");
    printf("Postorder traverse:\n");
    postorder(p);
    printf("\n");
    return 0;

}
为什么在输入#时没办法结束输入呢?
搜索更多相关主题的帖子: include create 二叉树 
2011-06-22 15:48
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
因为你的 create() 函数嵌套了很多层,你要输入很多个 '#' 才能结束输入
2011-06-22 15:56
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:10 
字符缓冲区的问题。
改成gecth不更好

********多贴代码,少说空话*******
2011-06-22 16:04
Glost
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:54
专家分:48
注 册:2010-10-5
收藏
得分:0 
回复 2楼 voidx
谢谢……,能在我的基础帮我改改这个程序吗?达到创建和遍历二叉树的目的。^-^

只有一条路不能选择—那就是放弃的路;只有一条路不能拒绝—那就是成长的路。
2011-06-23 09:03
Glost
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:54
专家分:48
注 册:2010-10-5
收藏
得分:0 
回复 3楼 ppfly
这个关系不大吧 我不是太明白

只有一条路不能选择—那就是放弃的路;只有一条路不能拒绝—那就是成长的路。
2011-06-23 09:04
快速回复:二叉树的创建与遍历问题???
数据加载中...
 
   



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

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