:::: MENU ::::

Связанные списки

Рассмотрим связанные списки на примере.

Cвязанный список.

typedef struct _link_init
{
    struct _link_init *next;
    struct _link_init *prev;
} link_init;

Создание связанных списков.

link_init* temp_link;
link_init test_0;
link_init test_1;
link_init test_2;
link_init test_3;

Создаем очередь последний и первый элемент указывает сам на себя.

test_0.next = &test_1;
test_0.prev = &test_0;
    
test_1.next = &test_2;
test_1.prev = &test_0;

test_2.next = &test_3;
test_2.prev = &test_1;

test_3.next = &test_3;
test_3.prev = &test_2;

Поиск последнего элемента — как указывающего next сам на себя.

temp_link = &test_0;
while((*temp_link).next != temp_link)
{
    temp_link = temp_link->next;
    i++;
}