| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:二叉树中序和先序确定一个二叉树
只看楼主 加入收藏
营养书
Rank: 2
等 级:论坛游民
帖 子:25
专家分:29
注 册:2011-4-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
二叉树中序和先序确定一个二叉树
二叉树中序和先序确定一个二叉树。。。。运行不出结果,麻烦各位帮忙看看、

# include <stdio.h>
# include <string.h>
# include <conio.h>
#include <malloc.h>
#define MAX 50
 typedef struct BiTNode /*定义二叉树节点结构*/
 {  char data; /*数据域*/
    struct BiTNode *LChild,*RChild; /*左右孩子指针域*/
 }BiTNode,*BiTree;

 int search(char a[MAX],char b[MAX])
 {
     for(int j=1;j<=12;j++)
         if(a[j]==b[1])
         return j;
 }

int crtbt(BiTree T,char pre[MAX],char ino[MAX],int ps,int is,int n)
{   
    int k;
    if(n==0)  T=NULL;
    k=search(ino,pre);   //k为根在中序中的位置
    if(k==-1)  T=NULL;
    else
        T=(BiTree)malloc(sizeof(BiTNode));
        T->data=pre[ps];
        if(k==is)  T->LChild=NULL;         //根在中序中的第一位
        else crtbt(T->LChild,pre,ino,ps+1,is,k-is);
        if(k=is+n-1)  T->RChild=NULL;        //根在中序中的末位
        else crtbt(T->RChild,pre,ino,ps+1+(k-is),k+1,n-(k-is)-1);
        return 0;
}

 void PrintTree(BiTree Boot,int n)  /* 按竖向树状打印的二叉树 */
 {   int i;
     if(Boot==NULL) return;
     PrintTree(Boot->RChild,n+1);
     for( i=0;i<n;i++)
     printf("  ");
      printf("%c\n\n",Boot->data);
     PrintTree(Boot->LChild,n+1);
 }
int main()
{
   
   int ps,is,n;
   int m,i;
   BiTree t;
   t=(BiTree)malloc(sizeof(BiTree));
   char h1[12]={'E','B','A','D','C','F','H','G','I','K','J'};
   char h2[12]={'A','B','C','D','E','F','G','H','I','J','K'};
   m=crtbt(t,h1,h2,ps,is,n);
   PrintTree(t,i);
   return 0;
 
}

 
 

搜索更多相关主题的帖子: search return 二叉树 
2011-05-03 14:53
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
2011-05-04 23:34
营养书
Rank: 2
等 级:论坛游民
帖 子:25
专家分:29
注 册:2011-4-17
收藏
得分:0 
恩。。。谢了。不过我的int crtbt(BiTree T,char pre[MAX],char ino[MAX],int ps,int is,int n)这个函数为什么不能运行出结果,感觉没什么问题。我编的程序大部分都有这样的问题,很郁闷。。。求解、、、
2011-05-05 22:57
zh1354453922
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2010-11-11
收藏
得分:0 
回复 2楼 寒风中的细雨
你调用函数的时候很有问题....有些都没传值进去...
2011-05-06 15:12
快速回复:二叉树中序和先序确定一个二叉树
数据加载中...
 
   



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

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