Единично свързан списък срещу двойно свързан списък
Свързаният списък е линейна структура от данни, която се използва за съхраняване на колекция от данни. Свързаният списък разпределя памет за своите елементи поотделно в собствения си блок памет и цялостната структура се получава чрез свързване на тези елементи като връзки във верига. Единично свързан списък се състои от поредица от възли и всеки възел има препратка към следващия възел в поредицата. Двойно свързан списък съдържа поредица от възли, в които всеки възел съдържа препратка към следващия възел, както и към предишния възел.
Списък с отделни връзки
Всеки елемент в единично свързан списък има две полета, както е показано на Фигура 1. Полето за данни съдържа действително съхранените данни, а следващото поле съдържа препратката към следващия елемент във веригата. Първият елемент от свързания списък се съхранява като глава на свързания списък.
Фигура 2 изобразява единично свързан списък с три елемента. Всеки елемент съхранява своите данни и всички елементи с изключение на последния съхраняват препратка към следващия елемент. Последният елемент съдържа нулева стойност в следващото си поле. Всеки елемент в списъка може да бъде достъпен, като започнете от началото и следвате следващия показалец, докато срещнете необходимия елемент.
Двойно свързан списък
Всеки елемент в двойно свързан списък има три полета, както е показано на фигура 3. Подобно на единично свързания списък, полето за данни съдържа действително съхранените данни, а следващото поле съдържа препратката към следващия елемент във веригата. Освен това предишното поле съдържа препратката към предишния елемент във веригата. Първият елемент от свързания списък се съхранява като глава на свързания списък.
Фигура 4 изобразява двойно свързан списък с три елемента. Всички междинни елементи съхраняват препратки към първия и предходните елементи. Последният елемент в списъка съдържа нулева стойност в следващото си поле, а първият елемент в списъка съдържа нулева стойност в предишното си поле. Двойно свързаният списък може да се премине напред, като се следват следващите препратки във всеки елемент и по подобен начин може да се премине назад, като се използват предишните препратки във всеки елемент.
Каква е разликата между единично свързан списък и двойно свързан списък?
Всеки елемент в единично свързания списък съдържа препратка към следващия елемент в списъка, докато всеки елемент в двойно свързания списък съдържа препратки към следващия елемент, както и към предишния елемент в списъка. Двойно свързаните списъци изискват повече място за всеки елемент в списъка и елементарните операции като вмъкване и изтриване са по-сложни, тъй като те трябва да работят с две препратки. Но списъците с двойна връзка позволяват по-лесно манипулиране, тъй като позволява преминаване през списъка в посоки напред и назад.