如果我有一个整数的链接列表,我如何迭代/遍历链接列表,以便我可以在 C++ 中使用 cout 打印每个元素?
问问题
4589 次
3 回答
1
希望这可以帮助!
struct Node
{
int data;
struct Node *next;
}
void Print(Node *head)
{
Node *a =head;
while(a!=NULL){
cout<<a->data<<endl;
a = a->next;
}
}
于 2017-12-24T16:30:11.827 回答
0
你可以使用这个:
void print(node* n) {
cout << n -> value << endl;
if(n -> next) print(n -> next);
}
并这样称呼它:
int main() {
linked_list l;
...
print(l -> head);
return 0;
}
于 2012-11-16T00:13:46.990 回答
0
想必你的链表有典型的链表操作。这些包括获取引用第一个元素的迭代器,递增迭代器以引用下一个元素,检查迭代器是否已超出列表的末尾,等等。算法是:
设置一个迭代器来引用链表中的第一个元素。
如果迭代器已经跑出链表的末尾,则停止。
打印迭代器引用的元素。
增加迭代器。
转到第 2 步。
如果您不知道如何执行任何这些特定步骤,那么您将不知道如何使用您拥有的特定链接类。为了帮助您,我们需要查看它的代码(如果它是一个现成的类,则需要查看其文档的链接)。
典型的 C++ 实现如下所示:
void LinkedList::print(ostream& stream) const
{
LinkedListElement* ptr = head; // this is my step 1
while (ptr != NULL) // this is my step 2
{
stream << *ptr; // this is my step 3
ptr = ptr->getNext(); // this is my step 4
} // step 5 happens here because this is a loop
}
于 2012-11-16T00:14:12.080 回答