【问题标题】:C, Print Linked List of StringsC、打印字符串链表
【发布时间】:2010-12-07 02:53:57
【问题描述】:

我必须编写一个使用链表的 C 程序。我创建了一个列表并将元素添加到列表中。但我不知道如何打印列表中的所有元素。该列表是字符串列表。我想我会以某种方式递增列表,打印那里的每个字符串,但我想不出办法。

简短:如何打印linked list

【问题讨论】:

  • 听起来你真正的问题是“我如何遍历一个链表”——这准确吗?
  • 对 Jefromi 的问题的跟进分为两部分:1)你能打印第一个节点的内容吗 2)你能获得到第二个节点的链接吗?
  • 真的取决于您用于链表的数据结构,您能向我们展示您的代码吗?顺便说一句,如果这是作业,你应该这样标记。
  • 回滚作业标签。我认为让 OP 有机会自己更改或表明它 不是 作业是礼貌的(发生这种情况的案例很多)。无论如何,在适当的延迟后(即超过六分钟的时间)给它贴上作业标签 :-) OP 表示他们只是想要一个轻推(而不是解决方案),所以无论如何,作业标签都是多余的。
  • “我在网上找不到足够好的信息来帮助我完成这项任务”在您阅读 LinkedList 的地方,应该向您展示如何访问节点,基本上只需一一重复.

标签: c printing linked-list


【解决方案1】:

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

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

printAll (head)

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

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


1嗯,实际上,可能有,但这不是其中之一:-)

【讨论】:

    【解决方案2】:

    您可以使用指针来遍历链接列表。伪代码:

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

    【讨论】:

      【解决方案3】:

      伪代码:

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

      【讨论】:

        【解决方案4】:

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

        你这样做直到下一个地址为 NULL(这意味着你已经到达你的尾巴)。

        【讨论】:

          猜你喜欢
          • 2021-10-23
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-26
          • 1970-01-01
          • 1970-01-01
          • 2012-09-04
          相关资源
          最近更新 更多