我需要编写一个使用链表的C程序。我已经创建了一个链表并向其中添加了元素。但是我不知道如何打印链表中的所有元素。这个链表是一个字符串列表。我想通过递增遍历整个链表,并打印出每个字符串,但我无法想出一种方法来完成这个任务。
简单来说:如何打印一个 链表
?
我需要编写一个使用链表的C程序。我已经创建了一个链表并向其中添加了元素。但是我不知道如何打印链表中的所有元素。这个链表是一个字符串列表。我想通过递增遍历整个链表,并打印出每个字符串,但我无法想出一种方法来完成这个任务。
简单来说:如何打印一个 链表
?
没有愚蠢的问题1。以下是一些伪代码,可帮助您入门:
def printAll (node):
while node is not null:
print node->payload
node = node->next
printAll (head)
就是这样,从头节点开始,打印出有效载荷并移动到列表中的下一个节点。
一旦下一个节点是列表末尾,停止。
1嗯,实际上可能存在其他更好的方法,但这不是其中之一 :-)
tempPointer = head
while(tempPointer not null) {
print tempPointer->value;
tempPointer = tempPointer->next;
}
伪代码:
struct list
{
type value;
struct list* pNext;
}
void function()
{
struct list L;
// .. element to L
// Iterate each node and print
struct list* node = &L;
do
{
print(node->value)
node = node->next;
}
while(node != NULL)
}
我不太确定这是否是您要寻找的内容,但通常您会在DS中存储pHead(指向第一个元素的指针),并实现一个函数来检索字符串节点的下一个地址。
您可以一直执行此操作,直到下一个地址为NULL(这意味着您已经到达了尾部)。