ВУЗ:
Составители:
Рубрика:
16
prev,next: PNode;
end;
где тип DataType определен ранее. Будем далее для определенности считать,
что DataType=integer и что все описания производятся в модуле IntList.
Отметим, что интерфейс класса «Список» должен предоставлять доступ
только к полям данных, но не к полям связей.
Будем хранить в классе списка указатели на первый, последний и текущий
элемент. Все методы разобьем на четыре группы. К первой группе отнесем основ-
ные методы – конструктор, деструктор, проверку списка на пустоту, вставку в на-
чало и конц, удаление из начала и конца. Вторую группу образуют вспомогатель-
ные методы: значение первого и последнего элемента, поиск элемента и удаление
всех его вхождений, а также
преобразование содержимого списка в строку. Тре-
тья группа методов управляет указателем на текущий элемент, который принято
называть внутренним итератором по той причине, что с его помощью можно
производить итерацию (цикл) по элементам списка. Помимо свойства, осуществ-
ляющего доступ к значению текущего элемента на чтение и запись, здесь присут-
ствуют методы
передвижения внутреннего итератора на следующий и предыду-
щий элемент, на первый и последний элемент, а также метод проверки итератора
на пустоту, которая трактуется как достижение итератором конца списка. Нако-
нец, в последней, четвертой группе находятся методы вставки и удаления элемен-
та в позиции текущего указателя.
Далее приводится интерфейс класса «Список».
type
DataType=integer;
PNode=^TNode;
TNode=record
data: DataType;
prev,next: PNode;
end;
List = class
private
f: PNode; // указатель на первый узел списка
l: PNode; // указатели на последний узел списка
cur: PNode; // указатель на текущий узел списка
function GetData: DataType;
procedure SetData(d: DataType);
public
// Основные методы
constructor Create;
destructor Destroy;
procedure AddFirst(x: DataType);
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »