Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
15.06.2014
Размер:
154.11 Кб
Скачать

34. Динамические структуры данных. Очередь.

Структурированные типы данных, такие, как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы. Часто требуется, чтобы структуры данных меняли свои размеры в ходе решения задачи. Такие структуры данных называются динамическими, к ним относятся стеки, очереди, списки, деревья и другие. Описание динамических структур с помощью массивов, записей и файлов приводит к неэкономному использованию памяти ЭВМ и увеличивает время решения задач.

Каждая компонента любой динамической структуры представляет собой запись, содержащую по крайней мере два поля: одно поле типа указатель, а второе - для размещения данных. В общем случае запись может содержать не один, а несколько указателей и несколько полей данных. Поле данных может быть переменной, массивом, множеством или записью. Очередью называется динамическая структура данных, добавление компоненты в которую производится в один конец, а выборка осуществляется с другого конца. Очередь работает по принципу: FIFO (First-In, First-Out) - поступивший первым, обслуживается первым. Для формирования очереди и работы с ней необходимо иметь три переменные типа указатель, первая из которых определяет начало очереди, вторая - конец очереди, третья - вспомогательная. Выборка компоненты из очереди осуществляется из начала очереди, одновременно компонента исключается из очереди. При работе с очередью применимы следующие функции AddEL - добав. в очередь, GetdelEL – удаление элемента с начала.

35. Однонаправленные списки.

Для работы с динамическими структурами используются списки. Список – набор динамических элементов, связанных между сбой каким либо способом. Списки бывают:1-линейные, 2-кольцевые, 3-односвязные, 4-двус- вязные. Линейные односвязные содержат связь только с одним элементом, следующим за данным, последний элемент содержит ссылку NIL, обязательно должен быть указатель на заглавное звено (на начало списка). В программировании часто используются списки у которых в указательное поле последнего элемента записывается ссылка на заглавное звено (кольцевые списки). Кольцевые списки – такие же динамические данные как линейные списки, но имеют дополнительную связь между последним и первым элементом списка.

36.Стек. Дек.

Стеком называется динамическая структура данных, добавление компоненты в которую и исключение компоненты из которой производится из одного конца, называемого вершиной стека. Стек работает по принципу LIFO (Last-In, First-Out) - поступивший последним, обслуживается первым. Обычно над стеками выполняется три операции: -начальное формирование стека (запись первой компоненты);-добавление компоненты в стек; -выборка компоненты (удаление). Для формирования стека и работы с ним необходимо иметь две переменные типа указатель, первая из которых определяет вершину стека, а

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

Соседние файлы в папке 1 курс 2 семестр