ݺߣ

ݺߣShare a Scribd company logo
Лекция 5 Абстрактные структуры данных
Таблицы Таблица  – это набор элементов, содержащих  ключ  – отличительный признак для поиска элементов, и  тело  – сопутствующую информацию. Примеры таблиц: 1) Таблица функции  f ( x ):  ключ – аргумент  x , тело –  значение  f ( x ). 2)  Словарь: ключ – слово, тело – его перевод. 3) Таблица имен компилятора:  ключ – имя объекта программы (например, переменной), тело – его характеристики (тип, адрес, значение и т.п.).
Основные операции  над таблицами: Инициализация (подготовка к работе). Поиск элемента по ключу – основная операция (входит в другие операции). Включение в таблицу данного элемента. Исключение из таблицы элемента с данным ключом. Изменение в таблице тела элемента с данным ключом. Распечатка элементов таблицы в порядке, определяемом ключами. Сортировка таблицы по возрастанию или убыванию ключей.
Типы таблиц: статическая (постоянная) и динамическая (меняющаяся при выполнении программы); внутренняя (в ОП) и внешняя (во внешней памяти, в файле); последовательная,  с прямым доступом,  древовидная.
Очереди Очередь  – это упорядоченная последовательность элементов, в которой операции включения и исключения элементов выполняются по принципу “первым  пришел – первым ушел”, т.е. включение всегда происходит в конец очереди, а исключение  – из начала очереди.
Основные операции над очередью: Инициализация (создание пустой очереди). Включение элемента в очередь. Исключение элемента из очереди.
Представление очереди в виде циклического вектора
Представление очереди в виде списка Очередь можно хранить в виде списка с двумя указателями: начала и конца очереди . 1 -й элемент   2 -й элемент   n -й элемент указатель   указатель начала   конца .   .   .
Стеки Стек  ( stack ) - это упорядоченная последовательность элементов, в которой выполняются операции включения и исключения элемента по принципу LIFO (Last-In-First-Out) - "последним пришел - первым ушел",  т.е. включение и исключение всегда происходят в одном конце. Этот конец называют  верхом , противоположный -  дном  стека.
Стек
Типовые операции над стеком:  1.  Инициализация  (создание, подготовка к  работе);  2.  Вталкивание   (включение) элемента -  PUSH;  3.  Выталкивание  (исключение) элемента -  POP;  4.  Проверка   пустоты  стека;  5.  Проверка переполнения  стека;  6.  Доступ к вершине  (получение / изменение  значения последнего поступившего  элемента).
Представление стека в виде вектора
Представление стека в виде списка
Деки Дек  (deque - double-ended queue: двусторонняя очередь) - это упорядоченная последовательность элементов, в которой включение и исключение элемента могут выполняться в обоих концах. Дек является обобщением очереди и стека.

More Related Content

лекция 5

  • 1. Лекция 5 Абстрактные структуры данных
  • 2. Таблицы Таблица – это набор элементов, содержащих ключ – отличительный признак для поиска элементов, и тело – сопутствующую информацию. Примеры таблиц: 1) Таблица функции f ( x ): ключ – аргумент x , тело – значение f ( x ). 2) Словарь: ключ – слово, тело – его перевод. 3) Таблица имен компилятора: ключ – имя объекта программы (например, переменной), тело – его характеристики (тип, адрес, значение и т.п.).
  • 3. Основные операции над таблицами: Инициализация (подготовка к работе). Поиск элемента по ключу – основная операция (входит в другие операции). Включение в таблицу данного элемента. Исключение из таблицы элемента с данным ключом. Изменение в таблице тела элемента с данным ключом. Распечатка элементов таблицы в порядке, определяемом ключами. Сортировка таблицы по возрастанию или убыванию ключей.
  • 4. Типы таблиц: статическая (постоянная) и динамическая (меняющаяся при выполнении программы); внутренняя (в ОП) и внешняя (во внешней памяти, в файле); последовательная, с прямым доступом, древовидная.
  • 5. Очереди Очередь – это упорядоченная последовательность элементов, в которой операции включения и исключения элементов выполняются по принципу “первым пришел – первым ушел”, т.е. включение всегда происходит в конец очереди, а исключение – из начала очереди.
  • 6. Основные операции над очередью: Инициализация (создание пустой очереди). Включение элемента в очередь. Исключение элемента из очереди.
  • 7. Представление очереди в виде циклического вектора
  • 8. Представление очереди в виде списка Очередь можно хранить в виде списка с двумя указателями: начала и конца очереди . 1 -й элемент 2 -й элемент n -й элемент указатель указатель начала конца . . .
  • 9. Стеки Стек ( stack ) - это упорядоченная последовательность элементов, в которой выполняются операции включения и исключения элемента по принципу LIFO (Last-In-First-Out) - "последним пришел - первым ушел", т.е. включение и исключение всегда происходят в одном конце. Этот конец называют верхом , противоположный - дном стека.
  • 11. Типовые операции над стеком: 1. Инициализация (создание, подготовка к работе); 2. Вталкивание (включение) элемента - PUSH; 3. Выталкивание (исключение) элемента - POP; 4. Проверка пустоты стека; 5. Проверка переполнения стека; 6. Доступ к вершине (получение / изменение значения последнего поступившего элемента).
  • 12. Представление стека в виде вектора
  • 14. Деки Дек (deque - double-ended queue: двусторонняя очередь) - это упорядоченная последовательность элементов, в которой включение и исключение элемента могут выполняться в обоих концах. Дек является обобщением очереди и стека.