0
我已經做了BST的實現,並且當我插入一些值時,我在INSERT函數中得到錯誤。如果我將主函數中的-32替換爲32(請參閱主)它工作正常,但現在出現錯誤。我找不到它。插入到BST導致錯誤C++
#include <iostream>
#include <cstdlib>
using namespace std;
struct Node{
int val;
Node* l;
Node* p;
Node(int val){
this->val = val;
l = NULL;
p = NULL;
}
};
struct BST{
Node* root;
BST(int val){
root = new Node(val);
}
};
bool insert(Node* e, int val){
if(e->val == val){
return false;
}
else if(val < e->val){
if(e->l == NULL){
e->l = new Node(val);
return true;
} else
return insert(e, val);
} else if(val > e->val){
if(e->p == NULL){
e->p = new Node(val);
return true;
}else
return insert(e->p, val);
} return false;
}
bool insert(BST* d, int val){
insert(d->root, val);
}
void infixDisplay(Node* w){
if(w != NULL){
infixDisplay(w->l);
cout<<w->val<<endl;
infixDisplay(w->p);
}
}
void infixDisplay(BST* d){
infixDisplay(d->root);
}
int main(){
BST* d = new BST(4);
insert(d,12);
insert(d,-32); // REPLACE WITH +32 IT IS OK!
insert(d,4);
insert(d,89);
insert(d,6);
insert(d,3);
infixDisplay(d);
return 0;
}
沒有'在身體return'聲明:'布爾插入(BST * d,INT VAL)' –