Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепции ООП.docx
Скачиваний:
21
Добавлен:
29.03.2016
Размер:
157.73 Кб
Скачать

15. Структуры данных. Стек.

Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс. Назначение структур: повышении эффективности и производительности программ. Структуры относятся к типам значений, и поэтому ими можно оперировать непосредственно, а не по ссылке. Следовательно, для работы со структурой вообще не требуется переменная ссылочного типа, а это означает в ряде случаев существенную экономию оперативной памяти.

Стек – это частный случай списка, добавление и выборке элементов из которого выполняются с одного конца, называемого вершиной стека(head). При выборке элемент исключается из стека. Других операции со стеком нет. Стек реализует принцип обслуживания LIFO (последним пришел первым вышел).

Пример:

Стек проще всего представить в виде пирамиды, на которую надевают кольца.

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

Каждый элемент Стека имеет:

  1. информационное поле inf, которое может быть любого типа и предназначено для

хранения значений, например, чисел, строк, или ссылок на внешние объекты.

  1. ссылочное поле next, которое будет использоваться для хранения ссылки на

следующий элемент стека.

Данные списка

достать 1, только после 2,3,4

16. Структуры данных. Очередь.

Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс. Назначение структур: повышении эффективности и производительности программ. Структуры относятся к типам значений, и поэтому ими можно оперировать непосредственно, а не по ссылке. Следовательно, для работы со структурой вообще не требуется переменная ссылочного типа, а это означает в ряде случаев существенную экономию оперативной памяти.

Очередь – это частный случай списка, добавление элементов в который выполняется в один

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

Пример:

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

Очереди имеет структуру:

  1. информационное поле inf, которое может быть любого типа;

  2. ссылочное поле next, которое будет использоваться для хранения ссылки на

следующий элемент очереди.

Функциональные элементы:

  1. вложенный класс Node для реализации базового элемента очереди;

  2. закрытое поле head, хранящее ссылку на первый элемент очереди;

3) закрытое поле tail, хранящее ссылку на последний элемент очереди; 4) конструктор класса.

tail

Две точки доступа headиtail.