Frankjunyu 2015-11-06 04:02 采纳率: 58.8%
浏览 1393

自己编的建立二叉树出错了,求大神指导

最近在学二叉树的建立,自己尝试着编了一个二叉树,然而在运行时出错了,程序自动关闭。不知道问题出在哪,求大神指导

#include
#include
typedef struct tnode Tnode;
struct tnode
{
Tnode *left;
Tnode *right;
int data;
};
Tnode *new_tnode(int data)
{
Tnode *new = malloc(sizeof(Tnode));
new->left=NULL;
new->right=NULL;
new->data=data;
return new;
}
void insert(Tnode *root,Tnode *tree)
{
if(root==NULL)
{
tree=root;
return;
}
if(root->datadata)
{
insert(root,tree->left);
}
else if(root->data>tree->data)
{
insert(root,tree->right);
}
}
void printout(Tnode *tree)
{
if(tree->left)
{
printout(tree->left);
}
printf("%d",tree->data);
if(tree->right)
{
printout(tree->right);
}
}
int main()
{
Tnode *tree=NULL;
int i;
int data;
for(i=0;i<10;i++)
{
scanf("%d",data);
insert(new_tnode(data),tree);
}

return 0;

}

  • 写回答

1条回答 默认 最新

  • yushujun1990 2015-11-06 04:57
    关注

    LZ写的好多错误,我给你个我写的吧
    输入例子1 2 3 4 5 0 0 0 0 0 0 创建了5个节点

    #include

    typedef struct Node {
    int data;
    struct Node* lchild;
    struct Node* rchild;
    }Node;

    void createTree(Node** tree)
    {
    int data;
    Node* node;
    scanf("%d",&data);
    (*tree)->data = data;
    if (data == 0) {
    (*tree)->lchild = NULL;
    (*tree)->rchild = NULL;
    return ;
    }
    node = (Node*)malloc(sizeof(Node));
    (*tree)->lchild = node;
    node = (Node*)malloc(sizeof(Node));
    (*tree)->rchild = node;
    createTree(&((*tree)->lchild));
    createTree(&((*tree)->rchild));
    }

    void printTree(Node* tree)
    {
    if (tree == NULL)
    return ;
    printf("%d ",tree->data);
    printTree(tree->lchild);
    printTree(tree->rchild);
    }

    int main()
    {
    Node tree = (Node)malloc(sizeof(Node));
    createTree(&tree);
    printTree(tree);
    return 0;
    }

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容