C语言,打印字符串链表

3

我需要编写一个使用链表的C程序。我已经创建了一个链表并向其中添加了元素。但是我不知道如何打印链表中的所有元素。这个链表是一个字符串列表。我想通过递增遍历整个链表,并打印出每个字符串,但我无法想出一种方法来完成这个任务。

简单来说:如何打印一个 链表


3
听起来你真正想问的是“我该如何遍历一个链表”- 这样说准确吗? - Cascabel
3
Jefromi的问题的后续分为两部分:1)您能打印第一个节点的内容吗?2)您能获取到第二个节点的链接吗? - dmckee --- ex-moderator kitten
1
真的取决于您用于链表的数据结构,您能展示一下您目前的代码吗?顺便说一句,如果这是作业,您应该将其标记为作业。 - Andreas Wong
1
回滚作业标签。我认为给予OP改变标签或表明它不是作业的机会是礼貌的(已经有很多这样的情况发生了)。请在适当的延迟后,即超过六分钟后再打上作业标签。OP已经表示他们只需要一个提示(而不是解决方案),因此作业标签也是多余的。 - paxdiablo
"我在网上找不到足够好的信息来帮助我完成那个任务。当你阅读关于LinkedList的内容时,应该展示给你如何访问节点,只需要一个接一个地重复即可。" - pinichi
谢谢大家的帮助,不过这不是作业。;) - JC Leyba
4个回答

13

没有愚蠢的问题1。以下是一些伪代码,可帮助您入门:

def printAll (node):
    while node is not null:
        print node->payload
        node = node->next

printAll (head)

就是这样,从头节点开始,打印出有效载荷并移动到列表中的下一个节点。

一旦下一个节点是列表末尾,停止。


1嗯,实际上可能存在其他更好的方法,但这不是其中之一 :-)


5
您可以使用指针来遍历链表。伪代码如下:
tempPointer = head

while(tempPointer not null) {
  print tempPointer->value;
  tempPointer = tempPointer->next;
}

1

伪代码:

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

0

我不太确定这是否是您要寻找的内容,但通常您会在DS中存储pHead(指向第一个元素的指针),并实现一个函数来检索字符串节点的下一个地址。

您可以一直执行此操作,直到下一个地址为NULL(这意味着您已经到达了尾部)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接