从预制文件制作链表
Making a linked list from a premade file
我正在尝试从 c++ 的预制文件制作链表。我正在努力解决从文件中获取信息并使用它来制作列表的概念。 这就是我目前所拥有的。我还需要能够从列表中的任意位置插入和删除节点。
struct node
{
string name;
int id;
float gpa;
node *next;
};
struct node* head;
void insertNodes(short id)
{
struct node* new_node = (struct node*) malloc(sizeof(struct node));
new_node->id = id;
new_node->next = head;
head = new_node;
}
void deleteNode() {
if (head == NULL){
cout << "List is empty" << endl;
return;
}
cout << head->id << " is removed." << endl;
head = head ->next;
}
int main() {
head = NULL;
node entry;
fstream datafile;
datafile.open("datafile.dat", ios::in | ios::binary);
if (!datafile)
{
cout << "Error!!n";
return 0;
}
datafile.read(reinterpret_cast<char *>(&entry), sizeof(entry));
}
如果你在C++中这样做,你不应该使用malloc
和free
,以及每个struc实例之前的struct
关键字;这些都是C主义的。 您可能应该创建一个自己的类来表示列表,并使用成员函数而不是全局变量head
,并使用new
和delete
来动态实例化和销毁变量。 仍然有malloc的情况,但这似乎不是其中之一。
此外,您的 INSERT 函数似乎只接受一个输入值并将其添加到列表的尾部;通常在列表中,您将希望获取插入点和值,除非您调用方法"pushback"或类似的东西。
此外,除非您重写以创建自己的List
类,否则您目前尚未进行任何面向对象的编程,因为您只是在程序上做事,而关于此代码的唯一 c++ 就是使用iostream
和fstream
。
建议你把node也做成一个类。 它主要是语义上的,但会让你养成习惯,即使你不想做访问器,也会给 node 一个构造函数。
除此之外,您是在询问信息而没有尝试任何事情,而且您的问题太宽泛了。
相关文章:
- 文本文件中的单词链表
- 将从格式化文本文件读取的文本数据存储到链表
- 从预制文件制作链表
- 如何从文件中检索链表(在 Turbo C++ 中)
- 在排序链表中插入结构并将其写入二进制文件
- 从文本文件加载链表并打印时无限循环
- 如何从文件读取到动态分配的指向结构的指针链表中?
- 在自定义哈希表头文件中包括自定义链表
- 将文本文件读入链表
- 我在让我的代码输出整个链表时遇到问题.它只是输出我修改过的一些文本文件,而不是整个东西
- 从文件读取到链表中
- 将文本文件读取到双向链表并将其输出 - C++
- 链表堆栈头文件中"<"标记之前的预期初始值设定项
- 将结构从二进制文件读取到链表,导致无限循环
- 从文本文件将整数读入简单的链表中.然后对整数列表进行气泡排序并读出到另一个文件
- C++ 链表类 -> 头文件
- 从文件读取链表C++从 void* 到 char* 的转换无效
- 使用c++通过文件存储和检索链表
- 想要读取超过 50,000 个 TXT 文件并将它们保存在 C++ 的链表中
- 如何将文件中的数字插入到链表中