связанный список внутри связанного списка - узел не может инициализироваться - PullRequest
0 голосов
/ 31 января 2019

Я работаю над проектом 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

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Ошибка возникает, когда функция используется в основном без предоставления определения функции.Определите функцию перед использованием.

0 голосов
/ 31 января 2019

Судя по изображению, вы объявили и использовали функцию buildList(std::string)main), но никогда не предоставляете определения этой функции.

Решение: укажите тело для функции buildList.

...