void InsertBST(BSTNode bt,KeyType k) { if(bt==NULL) { bt->key=k; printf("元素的数据为:"); scanf("%s",bt->data); printf("增加成功!\n"); } else if(k<bt->key) { bt->lchild=(BSTNode)malloc(sizeof(BSTNode)); InsertBST(bt->lchild,k); } else if(k>bt->key) { bt->rchild=(BSTNode)malloc(sizeof(BSTNode)); InsertBST(bt->rchild,k); } } void CreateBST(BSTNode bt) { int i,n; KeyType k; printf("二叉树的元素个数为:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("请输入第%d个元素的信息:\n",i); printf("元素的关键字为:"); scanf("%d",&k); InsertBST(bt,k); } }修改代码
时间: 2023-06-26 14:03:26 浏览: 134
利用随机函数产生30000个随机整数,进行顺序查找、折半查找(静态)、以及二叉排序树查找(动态)(VisualC++)
void InsertBST(BSTNode* bt,KeyType k) {
if (*bt == NULL) {
*bt = (BSTNode)malloc(sizeof(BSTNode));
(*bt)->key = k;
printf("元素的数据为:");
scanf("%s",(*bt)->data);
printf("增加成功!\n");
} else if (k < (*bt)->key) {
InsertBST(&((*bt)->lchild),k);
} else if (k > (*bt)->key) {
InsertBST(&((*bt)->rchild),k);
}
}
void CreateBST(BSTNode* bt) {
int i,n;
KeyType k;
printf("二叉树的元素个数为:");
scanf("%d",&n);
for(i=1;i<=n;i++) {
printf("请输入第%d个元素的信息:\n",i);
printf("元素的关键字为:");
scanf("%d",&k);
InsertBST(bt,k);
}
}
注意要传入指向指针的指针,因为要修改指针本身的值,以便在递归时正确地链接新节点。
阅读全文