Зв’язкові списки – новий стиль

Розглянемо основні операції з лінійними однозв'язковими списками та наведемо реалізацію для покажчиків (ліворуч) та посилань (праворуч). Усюди вважається, що змінна 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.Руйнування списку.

Ось тут – усі переваги складання сміття. Надав покажчику перший вузол списку нульове значення - і всі вузли стали недоступні. При наступному збиранні сміття вони будуть зібрані.