0
當程序嘗試添加一個數字時,出現堆棧溢出。它似乎在訪問不存在的二叉搜索樹。這是錯誤代碼: 未處理的異常在CIS 350問題2.exe中的0x01084DD9:0xC0000005:訪問衝突讀取位置0xCDCDCDD5。 有人可以幫忙嗎?提前致謝!二進制搜索樹創建堆棧overlfow
#include <iostream>
#include <algorithm> // for permutations
using namespace std;
struct BST
{
BST* left;
BST* right;
int d;
BST(int data)
{
d = data;
BST* left;
BST* right;
cout << d << endl;
}
void add(int data)
{
cout << d << " | " << data << endl;
if (d < data){
if (right == NULL){
right = new BST(data);
}
else{
right->add(data);
}
}
else{
if (left == NULL){
left = new BST(data);
}
else{
left->add(data);
}
}
}
}
int main()
{
BST* test1 = new BST(12);
test1->add(14);
system("pause");
return 0;
}
'left'和'right'未初始化(使用'NULL')。 – AlexD 2014-09-25 00:10:33
@AlexD謝謝!有效! – Nazariy1995 2014-09-25 00:23:39