Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы шпора.doc
Скачиваний:
2
Добавлен:
21.08.2019
Размер:
1.46 Mб
Скачать

142 Односвязный линейный список. Добавление, удаление элементов. Вывод на экран.

Списки содержат набор записей одного вида, ограниченный по размеру или неограниченный, упорядоченный или неупорядоченный. Данные обычно логически связаны между собой. Типичным примером незвязного (физически) списка является массив.

Связные списки представляют собой динамические структуры данных (динамические цепочки звеньев), в которых однотипные элементы (звенья) каким-либо образом связаны между собой, обычно на физическом уровне.

Классификация связных списков.

-По числу связей: односвязные (однонаправленными), двусвязными (двунаправленными) и многосвязными.

-По способу организации связей: линейные и кольцевые.

-По степени упорядоченности хранимых данных: упорядоченные и неупорядоченные.

Линейный односвязный список является самым простым видом связных списков. Такой список можно определить с помощью описаний типов.

Процедуры добавления и удаления. При неправильном выполнении этих процедур (т.е. при неправильной очерёдности выполнения операций присваивания) возможны 2 ошибочные ситуации:

1. Список "рвётся" по месту вставки или удаления звена, и звено, оказавшее последним, замыкается либо само на себя, либо на одно из предшествующих звеньев. При попытке просмотра списка процедура просмотра зацикливается и бесконечно выводит содержимое одного и того же звена (или нескольких звеньев).

2. Список "рвётся" по месту вставки или удаления звена, но указатель в звене, ставшем последним, получает какое-то произвольное значение, которое трактуется как адрес следующего звена (реально не существующего), у которого также есть указатель, содержащий какой-то адрес, и так далее, до тех пор, пока случайно не попадётся блок данных, для которого указатель не будет равен нулю. При попытке просмотра списка на дисплей сначала выводятся правильные данные, а затем случайный набор символов.

143 Оператор варианта (варианта) (Pascal, c, c#).

Оператор варианта (casе) состоит из выражения (переключателя) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Структура оператора выбора такова:

CASE <ключ_выбора> OF

  <список_выбора

   ELSE <оператор

END

CASE, OF, ELSE, END – зарезервированные слова (случай, из, иначе, конец);

<ключ_выбора> –  выражение любого порядкового типа;

<список_выбора> – одна или более конструкций вида: <константа_выбора>: <оператор>;

<константа_выбора> – константа того же типа, что и выражение <ключ_выбора>; < оператор> – произвольный оператор Турбо Паскаля.

Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]