Свързани списъци - нов стил

Нека да разгледаме основните операции върху линейни едносвързани списъци и да дадем реализация за указатели (вляво) и препратки (вдясно). Навсякъде се приема, че променливата p е от тип PNode за указатели и Node за препратки.

1.Предварителни описания.

Реализацията с указатели е очевидно по-подробна. Освен това функцията NewNode е външна и връзката й с типа PNode се определя само от близостта й до него в програмния текст.

2.Вмъква елемента със стойност x в началото на списъка, към който сочи p.

Почти същото. Във втория случай се извиква конструкторът на клас Node, който връща препратка към създадения обект.

3.Премахнете елемента от началото на непразния списък, посочен от p.

4.Вмъкнете елемента със стойност x след текущия, посочен от p.

Един и същ. Само ^ не е необходимо да се слага - красота! Препратката е дерефериран указател. Шапките не са необходими!

5.Премахнете елемента, следващ текущия, посочен от p.

6.Вмъкнете елемента със стойност x преди текущия, към който сочи p.

Трик. Вмъкнете копие на текущия елемент след него и след това променете стойността в текущия елемент на x. Решенията са равни.

7.Изтриване на текущия елемент, посочен от p.

8.Изведете списък, чийто първи елемент е посочен от p.

9.Търсене на елемент със стойност x. p сочи към първия елемент от списъка.

Еквивалентни решения. Шапки отдясно - не

10.Унищожаване на списъка.

Ето всички предимства на събирането на боклука. Присвои нулева стойност на указателя към първия възел от списъка - и всички възли станаха недостъпни. При следващото сметоизвозване ще бъдат събрани.