鱼C论坛

 找回密码
 立即注册
查看: 4736|回复: 10

遍历二叉树 小程序的问题

[复制链接]
发表于 2013-4-18 20:43:25 | 显示全部楼层 |阅读模式
10鱼币
又是我啦  这次是二叉树的问题  编译都木有问题了 (电脑说是没问题 error和warning都是0  但是 运行的时候 就是不给力!输入好了 一回车  就不往下执行了 黑框还卡那了  都研究一下午 这个小树苗了 还是无能为力  可耐的 鱼友们 快来帮帮我  能把我眉头压平了 让我恢复人类的摸样 我大大的给加分!!吼吼!!)
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct BiTNode
{
        char data;//结点的数据域
        struct BiTNode *lchild,*rchild;//结点的左右子树
}BiTNode,*Bitree;
create_Bitree(Bitree * p)//前序遍历的顺序输入二叉树中的所有元素
{
        char c;//二叉树里的元素都是字符
        scanf("%c",&c);
        if(c==' ')//空格代表 NULL
                *p=NULL;
        else
        {
                *p=(BiTNode*)malloc(sizeof(BiTNode));
                (*p)->data=c;
        }
        
    create_Bitree(&((*p)->lchild));//递归了!结点升级为根继续输入
        create_Bitree(&((*p)->rchild));
}
void visite(char c)
{
        printf("%c",c);
}
int  preorder(Bitree * p)//前序遍历输出 二叉树中所有元素
{
        if(*p==NULL)
                return NULL;
        visite((*p)->data);
    preorder(&((*p)->lchild));
        preorder(&((*p)->rchild));
        return 1;
}
int  inorder(Bitree * p)//中序遍历输出 二叉树中所有元素
{
    if(*p==NULL)
                return NULL;
        
    preorder(&((*p)->lchild));
    visite((*p)->data);
        preorder(&((*p)->rchild));
        return 1;
}
int  postorder(Bitree * p)//后序遍历输出 二叉树中所有元素
{
    if(*p==NULL)
                return NULL;
        
    preorder(&((*p)->lchild));
   
        preorder(&((*p)->rchild));
        visite((*p)->data);
        return 1;
}

void main()
{
        BiTNode *p;
        printf("请输入二叉树中所有元素(请以前序遍历的顺序输入)\n");
    create_Bitree(&p);
        printf("请以前序遍历的顺序输出二叉树中所有的元素:\n");
        preorder(&p);
        printf("请以中序遍历的顺序输出二叉树中所有的元素:\n");
        inorder(&p);
        printf("请以后序遍历的顺序输出二叉树中所有的元素:\n");
        postorder(&p);
        system("pause");
}

最佳答案

查看完整内容

改了下楼主二叉树的创建函数,可以运行出来。代码仅供参考。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-18 20:43:26 | 显示全部楼层
create_Bitree(Bitree * p)//前序遍历的顺序输入二叉树中的所有元素

{

        char c;//二叉树里的元素都是字符

        c = getchar();

        //scanf("%c",&c);

        if(c==' ')//空格代表 NULL
                {
                *p=NULL;
                                return ;
                }
        else

        {

                *p=(BiTNode*)malloc(sizeof(BiTNode));

                (*p)->data=c;

        }



    create_Bitree(&((*p)->lchild));//递归了!结点升级为根继续输入

    create_Bitree(&((*p)->rchild));

}
改了下楼主二叉树的创建函数,可以运行出来。代码仅供参考。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-18 22:12:28 | 显示全部楼层
都混到这份上了 自己抢自己沙发 都木有人吗  都跑哪鬼混去啦  不误正业
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-4-18 23:28:08 | 显示全部楼层
兄弟的代码逻辑都正确,开始我还没看懂
有一点小问题,修改如下
void create_Bitree(Bitree * p)//前序遍历的顺序输入二叉树中的所有元素
{
        char c;//二叉树里的元素都是字符
        _flushall();
        scanf("%c",&c);
        if(c==' ')//空格代表 NULL
        {
                *p=NULL;
                return;
        }
        else
        {
                *p=(BiTNode*)malloc(sizeof(BiTNode));
                (*p)->data=c;
        }

        create_Bitree(&((*p)->lchild));//递归了!结点升级为根继续输入
        create_Bitree(&((*p)->rchild));
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-19 10:22:35 | 显示全部楼层

哥们 厉害!那啥 不知道是不是我这电脑的问题诶  我要吧清除缓存区的函数去掉才能正确运行出来 不知道你的是不是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-19 10:23:19 | 显示全部楼层
小亮1201 发表于 2013-4-18 22:45
改了下楼主二叉树的创建函数,可以运行出来。代码仅供参考。

谢谢!!嘿嘿 不过输入的那个 咱俩的一样 不改也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-19 16:39:28 | 显示全部楼层
我是来领鱼币了的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-20 21:08:37 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-7 17:09:16 | 显示全部楼层
以前编过,不过2年前了,忘记了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-17 10:29:36 | 显示全部楼层
我复制你这串代码粘贴怎么跟你最初的错误一样呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 11:06:44 | 显示全部楼层
学习学习一下~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 20:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表