首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请高手帮忙修改一下下面数据结构的代码(C语言版)解决思路

2012-04-23 
请高手帮忙修改一下下面数据结构的代码(C语言版)?输入p127二叉链表的定义?录入调试p131算法6.4,实现二叉树

请高手帮忙修改一下下面数据结构的代码(C语言版)
?输入p127二叉链表的定义
?录入调试p131算法6.4,实现二叉树的构造函数
?编写二叉树打印函数,可以通过递归算法将二叉树输出为广义表的形式,以方便观察树的结构。
#include<stdio.h>
#include <malloc.h>
typedef struct BiTNode
{
char data;
struct BiTNdoe *lchild,*rchild;
}BiTNode,*BiTree;

int CreateBiTree(BiTNode* T){
char ch;
scanf(&ch);
if(ch==' ') T=NULL;
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
return 0;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}
void DispBiTNode(BiTNode* T) 
{
if (T!=NULL)
{
printf("%c",T->data);
if (T->lchild!=NULL || T->rchild!=NULL)
{
printf("(");
DispBiTNode(T->lchild);//递归处理左子树
if (T->rchild!=NULL) printf(",");
DispBiTNode(T->rchild);//递归处理右子树
printf(")");
}
}
}
void main()
{  
BiTNdoe *T;
  printf(" 构造一棵二叉树T:\n");
for(int i=0;i<15;i++)
CreateBiTree(T);
  printf(" 广义表表示法:");
DispBiTNode(T);
printf("\n");
}

运行时出现了下列错误:
树以广义表的形式输出.cpp
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(17) : error C2664: 'CreateBiTree' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(18) : error C2664: 'CreateBiTree' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(30) : error C2664: 'DispBiTNode' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(32) : error C2664: 'DispBiTNode' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(42) : error C2664: 'CreateBiTree' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\hp\desktop\新建文件夹\树以广义表的形式输出.cpp(44) : error C2664: 'DispBiTNode' : cannot convert parameter 1 from 'struct BiTNdoe *' to 'struct BiTNode *'
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
执行 cl.exe 时出错.

树以广义表的形式输出.obj - 1 error(s), 0 warning(s)

求解,谢谢

[解决办法]

C/C++ code
#include<stdio.h>#include <malloc.h>typedef struct BiTNode{    char data;    BiTNode *lchild,*rchild;//}BiTNode,*BiTree;int CreateBiTree(BiTNode* T){    char ch;    scanf(&ch);    if(ch==' ') T=NULL;    else{        if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))            return 0;        T->data=ch;        CreateBiTree(T->lchild);        CreateBiTree(T->rchild);    }    return 1;}void DispBiTNode(BiTNode* T)  {    if (T!=NULL)    {        printf("%c",T->data);        if (T->lchild!=NULL || T->rchild!=NULL)        {            printf("(");            DispBiTNode(T->lchild);     //递归处理左子树            if (T->rchild!=NULL) printf(",");            DispBiTNode(T->rchild);     //递归处理右子树            printf(")");        }    }}void main(){       BiTNode *T;    printf(" 构造一棵二叉树T:\n");    for(int i=0;i<15;i++)        CreateBiTree(T);    printf(" 广义表表示法:");    DispBiTNode(T);    printf("\n");} 

热点排行