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

二叉树输出按广义表的形式!该如何处理

2012-04-18 
二叉树输出按广义表的形式!!!#includestdio.h#includemalloc.htypedef struct Node{char datastruct

二叉树输出按广义表的形式!!!
#include<stdio.h>
#include<malloc.h>

typedef struct Node{
char data;
struct Node *LChild;
struct Node *RChild;
}BiTNode,*BiTree;

void CreatBiTree(BiTree *bt)
{
char ch;
ch=getchar();
if(ch=='.') *bt=NULL;
else
{
*bt=(BiTree)malloc(sizeof(BiTNode));
(*bt)->data=ch;
CreatBiTree(&((*bt)->LChild));
CreatBiTree(&((*bt)->RChild));
}
}


void PreOrder(BiTree root)
{
if(root!=NULL)
{  
printf("(");
printf("%c",root->data);
PreOrder(root->LChild);
if(root->RChild)
printf(",");
PreOrder(root->RChild);
printf(")");
}
}

void main()
{
BiTree LA;
LA=(BiTree)malloc(sizeof(BiTNode));
CreatBiTree(&LA);
PreOrder(LA);
printf("\n");
}


如输入AB..C..输出为(A(B,C))形式 谢谢了!!!!!!!

[解决办法]

C/C++ code
#include<stdio.h>#include<malloc.h>typedef struct Node{    char data;    struct Node *LChild;    struct Node *RChild;}BiTNode,*BiTree;void PreOrderR(BiTree root);void CreatBiTree(BiTree *bt){    char ch;    ch=getchar();    if(ch=='.') *bt=NULL;    else    {        *bt=(BiTree)malloc(sizeof(BiTNode));        (*bt)->data=ch;        CreatBiTree(&((*bt)->LChild));        CreatBiTree(&((*bt)->RChild));    }}void PreOrderL(BiTree root){    if(root!=NULL)    {           printf("(");        printf("%c",root->data);        PreOrderL(root->LChild);        if(root->RChild)        {            printf(",");            PreOrderR(root->RChild);            printf(")");        }    }}void PreOrderR(BiTree root){    if(root!=NULL)    {           printf("%c",root->data);        PreOrderL(root->LChild);        if(root->RChild)        {            printf(",");            PreOrderR(root->RChild);                    }        printf(")");    }}int main(){    BiTree LA;    LA=(BiTree)malloc(sizeof(BiTNode));    CreatBiTree(&LA);    PreOrderL(LA);    printf("\n");        system("pause");        return 0;} 

热点排行