Курсовая работа: Динамические структуры данных: дек

Указатель содержит адрес поля в динамической памяти, хранящего величину определенного типа. Сам указатель располагается в статической памяти.

Структурированные типы данных, такие, как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы.

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

Адрес величины — это номер первого байта поля памяти, в котором располагается величина. Размер поля однозначно определяется типом.

Динамическая структура называется деком (англ. deque – аббревиатура от double-ended queue, двухсторонняя очередь) или двунаправленным списком, если каждый узел её содержит два указателя: один указывает на предшествующий узел, другой - на последующий. Такие списки могут быть линейными и циклическими, а члены в них добавляются и удаляются с 2 сторон.


???. 1. ???

Мы будем различать деки с ограниченным выходом или ограниченным входом; в таких деках соответственно исключение или включение допускается только на одном конце.


Рис. 2. Дек с ограниченным входом

Рис. 3. Дек с ограниченным выходом

Дек с ограниченным входом может быть использован как простая очередь или как стек.

В деке все исключения и добавления происходят на обоих его концах.

Дек достаточно просто можно организовать в виде двусвязанного ациклического списка. При этом первый и последний элементы списка соответствуют входам (выходам) дека.

Описание алгоритма

Создаваемый класс в данной программе называется Deq.

Данный класс должен реализовывать функции вставки и удаления элементов в начало и конец дека.

Для создания класса «Дек» необходимо сначала создать структуру элемента с указателем на следующий элемент. В данной программе такой структурой является Node.

При создании класса надо создать указатели на первый и последний элементы дека. Данные указатели прописываются в private, т. е. обращаться к этим указателям возможно только из методов класса Deq.

В общедоступной области доступа прописываются методы класса, прописанные в постановке задачи.

Указателям изначально присваиваются пустые значения (NULL).

Добавление элемента в начало дека

Для добавления элемента в начало дека используется метод класса add . Его параметрами является добавляемый элемент b .

Необходимо создать новый элемент структуры Node (el). Элементу el присваивается значение введенного с клавиатуры числа. Для добавления элемента в начало дека, необходимо, чтобы ячейка была пуста. Поэтому, проверяется условие наличия в ячейке элемента. Если ячейка не пуста, то указатель на первый элемент переходит на следующую ячейку, в которую и будет записан элемент. Количество ячеек возрастает на 1.


Удаление элемента из начала дека

Для удаления элемента из начала дека используется метод класса delete .

Удаление элемента происходит по тому же алгоритму, но ячейка не проверяется на наличие элемента в нем. Элементу el присваивается указатель first и указатель переходит в следующую ячейку. Затем элемент el удаляется и количество ячеек понижается на единицу.

К-во Просмотров: 544
Бесплатно скачать Курсовая работа: Динамические структуры данных: дек