Как новичок в С++, я столкнулся с проблемой, пытаясь реализовать структуру для двоичного дерева поиска. Показанный ниже является частью моего кода, но С++ постоянно напоминал мне, что «инициализатор элемента данных не разрешен».
#include<iostream>
using namespace std;
struct BstNode{int key; BstNode*Left; BstNode*Right; BstNode*root = NULL;};
Объявление структуры должно быть struct, а не Struct. Вы должны назвать все объявления, которые вы забыли для последнего. Вам также нужно поставить точку с запятой после объявления структуры.
Что BstNode* = NULL; должен делать?
Это должен быть "корень"
Вы компилируете в С++ 11 (стандарт 2011 года) или новее? Я ожидаю, что любой современный компилятор по умолчанию будет соответствовать как минимум стандарту 2011 года, но многие люди используют очень старые компиляторы. Использование NULL может указывать на то, что вы используете какой-то старый стандарт. В С++ 11 и новее вместо этого следует использовать nullptr.





Вы просто пишете
BstNode *root = nullptr;
вне структуры.
BstNode* = NULL;не хватает имени, что ты там пытаешься сделать?