发 帖  
原厂入驻New
[问答] 用C语言构建一个二叉树失败
69 c语言 内存
分享
typedef struct node Binary_Tree;
        typedef struct node
        {
                int  data;  
                struct node *leftnode;
                struct node *rightnode;
        }Binary_Tree,*Tree;
u8 Make_BinaryTree( Binary_Tree *tree , int *p )
{
        static int *q;    q=p;         
   IF( *q==0)
   {
   tree=NULL;
   q++;
  return 0;  
   }
   else
   {
   tree=(Binary_Tree *)malloc(sizeof(Binary_Tree));
   tree->data=*q;
   printf("%d \n", tree->data);           
   q++;
   Make_BinaryTree( tree->leftnode , q );           
   Make_BinaryTree( tree->rightnode ,q );
   }
   return 0;
}
void Initialization_BinaryTree(void)
{
         
int array[]={1,2,3,0,0,4,0,0,5,6,0,0,7,0,0 };
Binary_Tree tree;
Make_BinaryTree( &tree , &array[0] );
printf("%d \n" ,tree.data);         
printf("%d \n" ,tree .rightnode->data);
printf("%d \n" ,tree.leftnode->data);
这三个输出都是乱码,我不知道二叉树的建立过程中问题在哪里,我应该在每个节点都分配了内存,不过结果好像有问题
}
0
2020-3-24 03:47:54   评论 分享淘帖 邀请回答

相关问题

2个回答
2020-3-24 09:47:17 评论

举报

雖然不知道你要幹嘛...但是有看到怪怪地方
u8 Make_BinaryTree( Binary_Tree **tree , int *p )
{
...
*tree=(Binary_Tree *)malloc(sizeof(Binary_Tree));
   *tree->data=*q;
...
}
多加個* 試試看

只有小组成员才能发言,加入小组>>

92个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表