单个链表,结构内部有更多数据类型

时间:2017-06-30 16:03:02

标签: c++

我有一个链接列表,AddNodeDeleteNodePrintList等功能正常,但我想用它来操作一下。

所以我想说我的结构是:

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;
        }
    }   
}

1 个答案:

答案 0 :(得分:0)

您没有在if中测试当前节点指针,而是要移动到错误位置的下一个元素。

您的代码应为:

    void printList()
    {
        curr = head;
        while(curr != NULL)
        {

            if (curr->used == true)
            {
                 cout << curr->data << " ";
            }

            curr = curr->next;

        }

    }