给定链表中的节点地址,获取节点的地址

飞行员先生

因此,我对遍历链接列表以及获取列表中的下一个节点有很好的理解。现在,我尝试朝另一个方向发展,但是我很快意识到它并不像看起来那样容易。与数组不同,在数组中可以向前和向后迭代。我似乎很沮丧。

所以,如果我有一个列表1-> 2-> 3-> 4-> NULL给定节点3的位置,我将如何获取节点2的地址?

我开始弄乱下面的代码,该代码返回节点3之前的所有项目。我只是看不到如何获得上一个节点?顺便说一句searchList(),如果您给它提供node-> data值,则返回节点的地址。使用上面的列表searchList(3)返回以3作为其数据成员的节点的地址。

struct node {
    int data;
    node* next;
};

void llclass::getPrevious() {
    node *stop = searchList(nodeItem),
         *start = head;

    while (start != stop) {
        cout << start->data << endl;
        start = start->next;
    }
}
数码眼

听起来好像您想获取其值作为输入输入的节点的上一个节点。这应该为您做到这一点:

node* llclass::getPrevious(int item)
{
   node* previous = NULL;
   node* current = head;
   while(current)
   {
      if (current->data == item)
      {
          return previous;
      }
      else
      {
          previous = current;
          current = current->next;
      }
   }
   return NULL;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章