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