林正在为我的数据结构类一个C ++项目,使用嵌套链表。
我应该写一个程序来从文件中读取学生姓名,并从中创建一个链接列表。链接列表中的每个条目都应具有该学生的姓名,指向下一个学生的指针以及指向该学生的成绩的链接列表的指针。该程序允许老师输入每个学生的成绩。
就目前而言,我担心寻找正确的上手方法。
书中提供一个示意图,它表示的数据结构应如何一个例子:diagram
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
};
它返回一个错误,指出“链接器命令失败”。我觉得自己初始化节点错误,但不知道如何解决。
如果有人有关于如何找到一个解决方案,或使用链表这个任务了不同的方法技巧,我真的很感激它。
答案 0 :(得分:2)
从图片中看来,您已经声明并使用了函数buildList(std::string)
(在main
中),但从未对此函数提供定义。
解决方案:为buildList
函数赋予一个主体。
答案 1 :(得分:0)
在main中使用某个功能而不提供功能定义时,会发生错误。在使用前定义功能。