Я работаю над проектом c ++ для своего класса структур данных, используя вложенные связанные списки.
Я должен написать программу, которая читает имена учеников из файла и создает из них связанный список.Каждая запись в связанном списке должна содержать имя ученика, указатель на следующего ученика и указатель на связанный список оценок для этого ученика.Эта программа позволяет учителям вводить оценки для каждого учащегося.
На данный момент, я беспокоюсь о том, чтобы найти правильный способ начать.
В книге представлена диаграмма, которая показывает пример того, какой должна быть структура данных: диаграмма
struct Grade{
float score;
};
struct GradeNode{
Grade grade_ptr; //points to Grade above
GradeNode *next_gnode; //points to next Grade NODE
};
struct StudentNode {
string name; //holds Student name
GradeNode *grades; //points to linked list of grades for this student
StudentNode *next_snode; //points to next student
};
StudentNode* head = nullptr; //head of student linked list (set to nullptr)
Я считаю, что, как я это изложил, имеет смысл, нокогда я запускаю код ниже:
void appendNode(string n){
StudentNode *node; //new node
node = new StudentNode;
node->name = n;
node->next_snode = nullptr;
//i just want to print out this node to see if value is initialized correctly
cout<<node->name<<endl; //this student's name prints out
};
Возвращает сообщение об ошибке «Команда компоновщика не выполнена».Я чувствую, что я неправильно инициализирую узел, но не знаю, как это исправить.
Если у кого-то есть советы о том, как найти решение или другой подход к решению этой задачи с использованием связанных списков, я был бы очень признателен.
вот фото журнала ошибок ![enter image description here](https://i.stack.imgur.com/Dcrwv.png)