我有一个链接列表,AddNode
,DeleteNode
,PrintList
等功能正常,但我想用它来操作一下。
所以我想说我的结构是:
struct node
{
int data;
node* next;
bool used;
}
所以我希望所有节点中的used
都是true
。但是如果我想删除一些节点,那么他们的used
应该设置为false。所以基本上“使用”意味着节点在列表中。如果我想打印完整列表,我只需要打印true
的节点。有什么方法可以做到吗?或者毫无意义?
我试过这个,但显然它说变量超出了范围。那我怎么能这样做呢?
void printList()
{
curr = head;
while(curr != NULL)
{
if (node->used == true)
{
cout << curr->data << " ";
curr = curr->next;
}
}
}
答案 0 :(得分:0)
您没有在if
中测试当前节点指针,而是要移动到错误位置的下一个元素。
您的代码应为:
void printList()
{
curr = head;
while(curr != NULL)
{
if (curr->used == true)
{
cout << curr->data << " ";
}
curr = curr->next;
}
}