| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2892 人关注过本帖
标题:求大神解答 为什么运行一半就不运行了??
取消只看楼主 加入收藏
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
求大神解答 为什么运行一半就不运行了??
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct bitree
{
    char data;
    struct bitree *lchild,*rchild;
}*Bitree,Binode;

void Create(Bitree T)
{
    char ch;
    ch=getchar();
    if(ch=='#')
    {
        T=NULL;
    }
    else
    {
        T=(Bitree)malloc(sizeof (Binode));
        T->data=ch;
        Create(T->lchild);
        Create(T->rchild);

    }
}

void Before(Bitree T)//先序遍历
{
    if(T)
    {
    printf("%c",T->data);
    Before(T->lchild);
    Before(T->rchild);
    }

}

int main()
{

    Binode T;
    Create(&T);
    printf("pre:");
    Before(&T);
    printf("\n");
    return 0;
}

我输入的是
ABC#E##DG###F##
运行结果是
pre:B
二叉树长这样
          A
       B     F
    C     D
     E   G

[此贴子已经被作者于2019-5-19 18:25编辑过]

2019-05-19 18:24
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 2楼 zhulei1978
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct bitree
{
    char data;
    struct bitree *lchild,*rchild;
}*Bitree,Binode;

void Create(Bitree &T)
{
    char ch;
    ch=getchar();
    if(ch=='#')
    {
        T=NULL;
    }
    else
    {
        T=(Bitree)malloc(sizeof (Binode));
        T->data=ch;
        Create(T->lchild);
        Create(T->rchild);

    }
}
void Before(Bitree T)
{
    if(T)
    {
    printf("%c",T->data);
    Before(T->lchild);
    Before(T->rchild);
    }

}

int main()
{
    Bitree T;
    Create(T);
    printf("pre:");
    Before(T);
    printf("\n");
    return 0;
}

这种算法也可以的 我改动了T的类型就可以运行了 但是不知道为什么之前那个运行不了
2019-05-19 21:55
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 4楼 zhulei1978
第一个程序 不是已经把主函数里面的T传到CreateT函数里面的指针类型的T去了吗 为什么不可以?
2019-05-20 15:09
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 6楼 zhulei1978
节点孩子T->lchild不是节点的左孩子的地址吗 跟Bitree T T就是地址 不是同个意思吗
2019-05-20 15:56
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 8楼 rjsp
不太理解 你说的T是T的地址对吗 为什么传的是T的值而不是T?

[此贴子已经被作者于2019-5-20 16:20编辑过]

2019-05-20 16:18
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 8楼 rjsp
啊啊我想通了 谢谢你!
2019-05-20 16:31
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 6楼 zhulei1978
谢谢你!我知道了
2019-05-20 16:31
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 12楼 rjsp
理解了理解了!!
2019-05-20 16:37
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 13楼 桔梗老板
我可以再问一个问题吗?就是你前面的第二个程序中的EOF是什么 为什么要加这个?
2019-05-20 16:46
桔梗老板
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2019-3-25
收藏
得分:0 
回复 15楼 rjsp
我疏忽了(>人<;)谢谢啦!
2019-05-20 17:16
快速回复:求大神解答 为什么运行一半就不运行了??
数据加载中...
 
   



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

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