标题:二叉树的问题
取消只看楼主
bobbob
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-4-13
结帖率:100%
已结贴  问题点数:20 回复次数:3 
二叉树的问题
本来应该输出十个数,结果就输出了 0 5 6 帮看一下哪里有错,谢谢
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct tree tree;

struct tree
{
    int data;
    tree *left;
    tree *right;
};

tree *tree_add(tree *root,int num)
{
    if(root == NULL)
    {
        root=malloc(sizeof(tree));
        root->data = num;
        root->left = root->right = NULL;
        return root;
    }
    else if(root->data < num)       

        root->right = tree_add(root->right,num);
    else if(root->data > num)
        root->left = tree_add(root->left,num);
    else
        return root;
}

int print_tree(tree *p)
{
    if(p->left != NULL)
        print_tree(p->left);
    printf("%d\n",p->data);
    if(p->right != NULL)
        print_tree(p->right);
}

int main()
{
    tree *root;
    int num[10]={5,0,4,7,8,3,2,1,6};
    for(int i=0;i<10;i++)
        if(root == NULL)
            root=tree_add(root,num[i]);
        else

            tree_add(root,num[i]);
    print_tree(root);
}

搜索更多相关主题的帖子: left tree num NULL int 
2020-04-13 15:41
bobbob
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-4-13
得分:0 
回复 2楼 fulltimelink
不是这个原因,我给两个 else if 加上返回值,输出仍然只是0 5 6
2020-04-13 17:59
bobbob
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-4-13
得分:0 
回复 4楼 fulltimelink
喔槽,为啥把那个 else 去掉就行了呀?想不通
2020-04-13 18:40
bobbob
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-4-13
得分:0 
回复 6楼 fulltimelink
谢谢
2020-04-14 09:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501020-1-1.html




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

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