【发布时间】:2021-06-10 12:41:49
【问题描述】:
所以,我试图编写一个只插入的二叉树代码,它正在工作,但在我删除了一些无用的int 后,它由于某种原因停止工作。谁能告诉我为什么
所以,这是我的代码,它工作正常。但是当我删除int main 中的int i=3; 时,它停止工作。这是为什么?顺便说一句,int i=3; 只是一个随机数,如果我将其更改为其他数字,它仍然有效
#include<stdio.h>
#include<stdlib.h>
struct Treenode{
int data;
struct node*left;
struct node*right;
};
typedef struct Treenode Treenode;
struct Treenode* CreateTree(struct Treenode** tree, int num) {
Treenode*temp = NULL;
if(!(*tree))
{
temp = (Treenode*)malloc(sizeof(Treenode));
temp->left = temp->right = NULL;
temp->data = num;
*tree = temp;
return;
}
if(num < (*tree)->data){
CreateTree(&(*tree)->left, num);
}
else if(num > (*tree)->data){
CreateTree(&(*tree)->right, num);
}
}
void inorder(struct Treenode* root)
{
if (root != NULL) {
inorder(root->left);
printf("%d \n", root->data);
inorder(root->right);
}
}
int main(){
int i = 3;
//creating tree
Treenode*root;
CreateTree(&root, 1);
CreateTree(&root, 2);
CreateTree(&root, 3);
CreateTree(&root, 4);
CreateTree(&root, 5);
CreateTree(&root, 6);
inorder(root);
return 0;
}
【问题讨论】:
-
CreateTree声称返回一个值,但没有。
标签: c binary-tree binary-search-tree