Das Problem
ich einige Zweifel mit meiner Methode zum Einfügen in C++ mit, es verursacht einen Stapelüberlauf.Binary Tree Einfügemethode verursacht Stapelüberlauf
Zusammengestellt mit g ++ auf Windows
g ++ -Wall -O2 Tree.cpp -o Baum
Ausgang
0 [unknown (0x2B70)] Baum 10496 cygwin_exception :: open_stackdumpfile: Versenkung Stack-Trace Tree.exe.stackdump
-Code
# include <iostream>
using namespace std;
struct Node{
int val;
Node *left, *right;
};
Node* Insert(Node *node, int val)
{
if(node == NULL)
{
node = new Node;
node->val = val;
node->right = node->left = NULL;
}
if(node->val > val)
node->left = Insert(node->left, val);
else
node->right = Insert(node->right, val);
return node;
}
int main()
{
Node *root = NULL; // New tree
root = Insert(root, 5);
root = Insert(root, 19);
root = Insert(root, 1);
root = Insert(root, 32);
return 0;
}
sieht aus wie eine unendliche Rekursion mir – Jeremy
Dies liegt daran, 'Rückkehr node' zum' if' für den Basisfall hinzugefügt werden soll. – dasblinkenlight
Ja es war eine unendliche Rekursion hehe, danke :) – Bit89