我试图实现一个链表数据类型的小样本。我创建了一个保存值的structNode,一个跟踪所有节点的structList(链表格式)。最后是一个类,它是两个结构的通用数据类型。
当我运行程序时,我总是在到达步骤时出现段故障错误:item->link[i++]=新节点(输入)
代码:
struct Node
{
int val;
Node();
Node(int x);
};
struct List
{
Node *link[20];
List();
};
class pol
{
public:
void read_txt(ifstream &file);
private:
List *item;
};
void pol::read_txt(ifstream &file)
{
int input, i;
i = 0;
file >> input;
cout << "Value read from the file: " << input << endl;
while(input != 0)
{
item.link[i++] = new Node(input);
file >> input;
cout << "Value read from the file: " << input << endl;
}
}
我想做的是,创建一个值为"input"的新节点,该值是我从读取文件中获得的。接下来,我想创建一个连接了所有节点的链表。
成员item
从不初始化。就我所见,根本没有理由把它当作一个指针。只需将其设为List item;
即可。