2010-12-07 2 views
3

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

Короткие: Как напечатать linked list?

+3

Похоже, ваш реальный вопрос «как я перебирать связанный список» - это то, что точный? – Cascabel 2010-12-07 02:55:36

+3

Рассмотрение вопроса Джефроми состоит из двух частей: 1) Можете ли вы распечатать содержимое первого узла и 2) можете ли вы получить ссылку на второй узел? – dmckee 2010-12-07 02:57:33

ответ

10

Нет глупых вопросов . Вот некоторые псевдо-код, чтобы вы начали:

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

printAll (head) 

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

После того, как следующий узел является концом списка, остановите.


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

0

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

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

3

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

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) 
} 
Смежные вопросы