我正在编写一个实现Binary Search Tree (BST)
的C ++程序。所以,我开始将二叉树节点实现为struct
。由于二叉树节点包含两个pointers
到其他二叉树节点,因此该结构包括指向该结构类型的变量的指针。为此,我理解需要结构的前向声明。我做到了。然而,我得到一个简单程序的运行时错误,除了为所述结构的成员赋值之外什么都不做。我不明白为什么。请让我知道原因。
#include <iostream>
using namespace std;
struct t_node;
struct t_node
{
int data;
t_node* left;
t_node* right;
};
int main()
{
t_node *root;
root->data = 2;
cin.get();
return 0;
}
我正在使用Dev-C++ 4.9.9.2
。
谢谢!
答案 0 :(得分:1)
您需要为节点分配内存。使用new
:
t_node* root = new t_node();
答案 1 :(得分:1)
t_node *root;
root->data = 2;
很糟糕。你正在发现一个没有初始化的指针。
t_node *root = new t_node;
root->data = 2
将为您的节点分配内存,并解决您的问题。