Hallo Ich habe versucht, mit Rücksicht zu Knoten in einen binären Suchbaum einzufügen. Aber ich denke jetzt bin ich jetzt in der Einfügefunktion fest. Ich glaube, ich habe einen Fehler gemacht, als ich mich an die Einfügefunktion erinnere. Also kann mir jeder helfen, mir zu sagen, was mit meinem Code nicht stimmt, danke.C++ binärer Suchbaum durch Verwendung der Dereferenz
struct BstNode {
int data;
BstNode *left;
BstNode *right;
};
BstNode *GetNewNode(int);
void Insert(BstNode **, int);
void Insert(BstNode **root, int data)
{
if(*root == NULL){
*root = GetNewNode(data);
}
else if(data <= root){
Insert(*(root -> left), data);
}
else {
Insert(*(root -> right), data);
}
BstNode *GetNewNode(int data)
{
BstNode *newNode = new BstNode();
newNode->data = data;
newNode->left = newNode->right = NULL;
return newNode;
}
int main()
{
BstNode *root = NULL;
Insert(&root,15);
Insert(&root,10);
Insert(&root,20);
return 0;
}
Können Sie näher erläutern, was Sie meinen "stecken"? Compilerfehler? Programm läuft, hört aber nie auf? Kann ich nicht herausfinden, wie man den Code schreibt? – 1201ProgramAlarm
@Shawn W W Diese Bedingung else if (Daten <= root) {ergibt keinen Sinn. –