OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3325|回复: 3

用C语言这么构建一个二叉树不成功原因?想求助一下

[复制链接]

10

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2018-8-2
在线时间
73 小时
发表于 2018-8-13 15:08:57 | 显示全部楼层 |阅读模式
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);
这三个输出都是乱码,我不知道二叉树的建立过程中问题在哪里,我应该在每个节点都分配了内存,不过结果好像有问题

}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2018-8-2
在线时间
73 小时
 楼主| 发表于 2018-8-14 15:04:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2018-8-14 17:46:59 | 显示全部楼层
雖然不知道你要幹嘛...但是有看到怪怪地方

u8 Make_BinaryTree( Binary_Tree **tree , int *p )
{
...
*tree=(Binary_Tree *)malloc(sizeof(Binary_Tree));
   *tree->data=*q;
...
}
多加個* 試試看
回复 支持 反对

使用道具 举报

0

主题

140

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2019-4-2
在线时间
3 小时
发表于 2019-4-9 08:25:09 | 显示全部楼层
可以的啊!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 06:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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