回 帖 发 新 帖 刷新版面

主题:[讨论][求助]请帮我看一下我的程序哪里错拉

   [em18]    自己做的 有二叉树的创建 和先序遍历 但是输出结果有问题 请大家帮我指点一下 谢谢你们哦 
   
    
   #include<stdio.h>
   #include<stdlib.h>
    #define maxsize 50
     typedef struct tnode
      { char data;
        struct tnode *lchild,*rchild;  }
       bitree;
       bitree *t,v;

     Creatbitree(t)
      bitree *t;
       { char ch;
         scanf("%c",&ch);
         if(ch=='')
          t=NULL;
         else
          { t=malloc(sizeof(bitree));
            t->data=ch;
            Creatbitree(t->lchild);
            Creatbitree(t->rchild);  }   }

     PREORDER(t)
      bitree *t;
       { if(t)
          { printf("%c",t->data);
            PREORDER(t->lchild);
            PREORDER(t->rchild);  }  }

     main()
      { t=&v;
        Creatbitree(t);
        PREORDER(t);    }

回复列表 (共7个回复)

沙发

你程序里面的小问题真多
等等  我帮你看看

板凳

Creatbitree(t)
      bitree *t;
       { char ch;
         scanf("%c",&ch);
         if(ch=='')
          t=NULL;
         else
          { t=malloc(sizeof(bitree));
            t->data=ch;
            Creatbitree(t->lchild);
            Creatbitree(t->rchild);  }   }
这创建就错误了  你好好想想

3 楼

#include<stdio.h>
#include <string.h>
#include <stdlib.h> 
#include <conio.h>
#include <iostream.h>
#define MAXCHAR 40
#define NULL 0


#define maxsize 50
typedef struct tnode
      { char data;
        struct tnode *lchild,*rchild; 
     }
       *bitree;
       bitree tt;

void Creatbitree(bitree &x)
    { 
         char ch;
         cin>>&ch;

         if(ch !='8')
         {
             x=(bitree)malloc(sizeof(bitree));
             x->data=ch;    
            
             printf("you input %c    ",ch);
             Creatbitree(x->lchild);
             Creatbitree(x->rchild);
         } 
         else
         {
             x = NULL;
         }
    }

void PREORDER(bitree &t)
  { 
    
    if(t != NULL)
       {
            printf("%c    ",t->data);
            PREORDER(t->lchild);
            PREORDER(t->rchild);  
        }
}

void main()
 { 
      Creatbitree(tt);
   
    PREORDER(tt);
 }

这是我帮你修改好的 在vc++ win2000 可以正常运行

4 楼


请问一下是不是在 t=malloc(sizeof(bitree))
 这里前面加一个 t=(bitree)malloc(sizeof(bitree))

5 楼

你好 这里的 void 是什么意思?  
还有我是在TC2.0的环境下做 我对你的有些写的看不太懂 
你能不能写简单点 谢谢你

6 楼


谢谢你哈

7 楼

void  就是无没有返回值 我是在vc6.0运行的

我来回复

您尚未登录,请登录后再回复。点此登录或注册