Вывод элементов из односвязного списка

291
20 января 2018, 01:03

Создала линейный односвязный список. Как его вывести?

 struct Data
{   int a;
};
struct List
{   Data d;
List *next;
};


int main(int argc, char** argv) {
    List *u = NULL;
    // 1 uzel
    u = new List; // obyavlenie 
    u->d.a = 3;  
    u->next = NULL; // ukazatel na sled element
    // dlya udobstva sozd peremennuyu-ukazatel kotoraya hranit adress posl elementa
    List *x;
    // 2 uzel
    x = u;
    x->next = new List;
    x = x->next;
    x->d.a = 5;
    x->next = NULL;
    // 
    List *c;
    // 3 uzel
    c = x;
    c->next = new List;
    c = c->next;
    c->d.a = 1;
    c->next = NULL;
    //
    List *b;
    // 4 uzel
    b = c;
    b->next = new List;
    b = b->next;
    b->d.a = 9;
    b->next = NULL;
Answer 1

Не буду разбираться, как вы вводили - вопрос ведь не как создать, а как вывести? Но если там все верно, то просто идем по списку.

struct Data
{   
    int a;
};
struct List
{   
    Data d;
    List *next;
};

Если указатель на первый элемент списка - List*head, то выглядит это примерно так:

while(head)
{
    cout << head->d.a << endl; // Вывод текущего элемента
    head = head->next;         // Переход к следующему
} 
READ ALSO
Как добавить физику в Java3d [требует правки]

Как добавить физику в Java3d [требует правки]

Всем приветЯ разрабатываю проект на языке программирование Java с использованием библеотеки Java3d

191
Как создать Even?

Как создать Even?

Программа моя принимает много пакетовЧтобы программа обрабатывала каждый полученый пакет должен пройти проверку

175