В связанном списке каждый элемент данных встраивается в специальный объект, называемый элементом списка (классу, на основе которого создаются такие объекты, часто присваивается имя Link ). Так как список содержит много однотипных элементов, для них удобно создать отдельный класс, отличный от класса самого связанного списка.
Каждый элемент (то есть объект Link ) содержит ссылку на следующий элемент списка. Поле, в котором эта ссылка хранится, обычно называется next. Объект списка содержит ссылку на первый элемент first. Отношения между объектами в этой архитектуре представлены на рис.1.
Рис.1. Связанный список пример
Далее приводится часть определения класса Link . В полях класса хранятся данные и ссылка на следующий элемент списка:
1 2 3 4 5 6 |
class Link { public int intData; // Данные public double doubleData; // Данные public Link next; // Ссылка на следующий элемент списка } |
Подобные определения классов иногда называются самоотносимыми (self referential), потому что объект класса содержит поле ( next в данном случае) со ссылкой на объект того же типа. В типичном приложении полей данных может быть намного больше. Скажем, запись о работнике фирмы может содержать поля имени, адреса, номера социального страхования, должности, зарплаты, а также другие атрибуты. Вместо отдельных полей часто используется объект класса, содержащего все данные:
1 2 3 4 5 |
class Link { public inventoryItem iI; // Объект с данными public Link next; // Ссылка на следующий элемент списка } |
На этом наш урок заканчивается. Встретимся в следующим уроком под номером 2.