C, Печать связного списка строк - PullRequest
3 голосов
/ 07 декабря 2010

Мне нужно написать программу на C, которая использует связанный список.Я создал список и добавил элементы в список.Но я не знаю, как распечатать все элементы в списке.Список представляет собой список строк.Я подумал, что буду каким-то образом увеличивать список, печатая каждую имеющуюся строку, но я не могу придумать, как это сделать.

Ответы [ 4 ]

10 голосов
/ 07 декабря 2010

Глупых вопросов нет 1 . Вот некоторый псевдокод, с которого можно начать:

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

printAll (head)

Это действительно так, просто начните с головного узла, распечатайте полезную нагрузку и перейдите к следующему узлу в списке.

Как только этот следующий узел станет концом списка, остановитесь.


1 Ну, на самом деле, вероятно есть , но это не один из них:

4 голосов
/ 07 декабря 2010

Вы можете использовать указатель для перебора списка ссылок. Псевдокод:

tempPointer = head

while(tempPointer not null) {
  print tempPointer->value;
  tempPointer = tempPointer->next;
}
1 голос
/ 07 декабря 2010

псевдокод:

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 голосов
/ 07 декабря 2010

Я не совсем уверен, что это то, что вы ищете, но обычно вы сохраняете в своем DS pHEad (это указатель на первый элемент) и реализует функцию, которая получает следующий адресСтрока-узел.

Вы делаете это до тех пор, пока следующий адрес не станет пустым (что означает, что вы достигли своего хвоста).

...