2.1.2. Структуры хранения списков
Возможный вариант общей схемы представления линейных списков может иметь
следующий формат:
где
pFirst – указатель на первое звено списка;
pLast – указатель на последнее звено списка;
pCurrLink – указатель на текущее звено списка;
pPrevLink – указатель на звено, предшествующее текущему;
CurrPos – номер текущего звена;
ListLen – количество звеньев в списке.
Для повышения общности схемы реализации для фиксации ситуаций, в которых указатель
не содержит адрес какого-либо звена списка (например, указатель следующего звена в конце
списка) предлагается использовать переменную pStop вместо величины NULL (по умолчанию,
эта переменная будут равняться NULL, другие значения константы будут использоваться по
необходимости).
Необходимые операции над списком должны определяться при проектировании класса
поддержки списков. В число необходимых операций должны входить операции создания и
удаления списков, вставки и удаления звеньев, последовательного доступа к звеньям и др.
Применительно к полиномам в поле значений звеньев должны располагаться
коэффициент и степень мономов – тем самым, структура хранения для приведенного ранее
примера полинома имеет вид:
При внимательном рассмотрении задачи обработки полиномов может быть
рекомендовано определенное расширение общей схемы представления линейных списков:
Для обеспечения однородности представления полиномов (в частности, для
представления нулевого полинома) целесообразно ввести служебное начальное звено (звено-
заголовок):
(звено-заголовок маркируется логически-недопустимыми значениями коэффициента и
индекса монома).
pFirst
pLast
pCurrLink
CurrPos
0
Do'stlaringiz bilan baham: |