| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:在vc6.0为什么这棵树运行不了了??
只看楼主 加入收藏
千马弈
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-3-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
在vc6.0为什么这棵树运行不了了??
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#define OK 1
#define ERROR 0
#define  OVERFLOW 1

typedef int Status;
typedef char ElemType;

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


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



Status PreOrderTraverse(BiTree T)
{if(T)
{
    printf("%c",T->data);

PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
return OK;
}


Status DestroyBiTree(BiTree T)
{if(T)
{
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
free(T);

}
return OK;
}

void main()
{
BiTree T;
T=(BiTNode*)malloc(sizeof(BiTNode));
CreateBiTree(T);
PreOrderTraverse(T);
DestroyBiTree(T);
}
搜索更多相关主题的帖子: include 
2012-04-18 19:32
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
程序代码:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#define OK 1
#define ERROR 0
#define  OVERFLOW 1

typedef int Status;
typedef char ElemType;

typedef struct BiTNode{
     ElemType data;
     struct BiTNode *lchild,*rchild;

 }BiTNode,*BiTree;


BiTree CreateBiTree(BiTree T)

 {
     char ch;
     scanf("%c",&ch);
     fflush(stdin);
     if(ch==' ')
     {
         T=NULL;
     }
     else
     {
         T=(BiTNode*)malloc(sizeof(BiTNode));
         if(!T)exit (OVERFLOW);
   
         T->data=ch;
         T->lchild = CreateBiTree(T->lchild);
         T->rchild = CreateBiTree(T->rchild);
     }
     return T;

 }


Status PreOrderTraverse(BiTree T)
{
    if(T)
    {
        printf("%c",T->data);

        PreOrderTraverse(T->lchild);
        PreOrderTraverse(T->rchild);
    }

    return OK;
}


Status DestroyBiTree(BiTree T)
{
    if(T)
    {
        PreOrderTraverse(T->lchild);
        PreOrderTraverse(T->rchild);
        free(T);
    }

    return OK;
}

void main()
{
    BiTree T;
//    T=(BiTNode*)malloc(sizeof(BiTNode));
    T = CreateBiTree(T);
    PreOrderTraverse(T);
    DestroyBiTree(T);
} 
2012-04-18 21:08
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
要是你的main函数不做修改   

 CreateBiTree(BiTree T)中就要为左右孩子分配空间而不是为结点自身
2012-04-18 21:22
快速回复:在vc6.0为什么这棵树运行不了了??
数据加载中...
 
   



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

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