
- •1. Понятие структур данных и алгоритмов
- •3. Системы счисления. Непозиционные/позиционные системы счисления. Изображение чисел в позиционной системе счисления. Перевод чисел из одной системы счисления в другую.
- •8. Битовые типы
- •2.7.1. Физическая структура указателя
- •17. Записи.
- •21. Операции логического уровня над статическими структурами. Сортировка
- •22. Характерные особенности полустатических структур
- •23. Стеки Логическая структура стека
- •4.2.2. Машинное представление стека и реализация операций
- •24. Очереди fifo
- •25. Деки
- •4.4.2. Деки в вычислительных системах
- •26. Строки. Логическая структура строки
- •4.5.3. Представление строк в памяти.
- •27. Связное представление данных в памяти
- •28. Графы
- •29. Деревья Основные определения
- •30. Бинарные деревья.
- •31. Основные операции над деревьями.
- •Процессы разработки программ
- •V-образный жизненный цикл;
- •Процессы и документы при разработке пс
22. Характерные особенности полустатических структур
Полустатические структуры данных характеризуются следующими признаками:
они имеют переменную длину и простые процедуры ее изменения;
изменение длины структуры происходит в определенных пределах, не превышая какого-то максимального (предельного) значения.
Если полустатическую структуру рассматривать на логическом уровне, то о ней можно сказать, что это последовательность данных, связанная отношениями линейного списка. Доступ к элементу может осуществляться по его порядковому номеру.
Физическое представление полустатических структур данных в памяти - это обычно последовательность слотов в памяти, где каждый следующий элемент расположен в памяти в следующем слоте (т.е. вектор). Физическое представление может иметь также вид однонаправленного связного списка (цепочки), где каждый следующий элемент адресуется указателем находящемся в текущем элементе. В пос- леднем случае ограничения на длину структуры гораздо менее строгие.
23. Стеки Логическая структура стека
Стек - такой последовательный список с переменной длиной, включение и исключение элементов из которого выполняются только с одной стороны списка, называемого вершиной стека. Применяются и другие названия стека - магазин и очередь, функционирующая по принципу LIFO (Last - In - First- Out - "последним пришел - первым исключается"). Примеры стека: винтовочный патронный магазин, тупиковый железнодорожный разъезд для сортировки вагонов.
Основные операции над стеком - включение нового элемента (английское название push - заталкивать) и исключение элемента из стека (англ. pop - выскакивать).
Полезными могут быть также вспомогательные операции:
определение текущего числа элементов в стеке;
очистка стека;
неразрушающее чтение элемента из вершины стека, которое может быть реализовано, как комбинация основных операций:
x:=pop(stack); push(stack,x).
Некоторые авторы рассматривают также операции включения/исключения элементов для середины стека, однако структура, для которой возможны такие операции, не соответствует стеку по определению.
Для наглядности рассмотрим небольшой пример, демонстрирующий принцип включения элементов в стек и исключения элементов из стека. На рис. 4.1 (а,б,с) изображены состояния стека:
а). пустого;
б-г). после последовательного включения в него элементов с именами 'A', 'B', 'C';
д, е). после последовательного удаления из стека элементов 'C' и 'B';
ж). после включения в стек элемента 'D'.
Рис 4.1. Включение и исключение элементов из стека.
Стек можно представить, например, в виде стопки книг (элементов), лежащей на столе. Присвоим каждой книге свое название, например A,B,C,D... Тогда в момент времени, когда на столе книг нет, про стек аналогично можно сказать, что он пуст, т.е. не содержит ни одного элемента. Если же мы начнем последовательно класть книги одну на другую, то получим стопку книг (допустим, из n книг), или получим стек, в котором содержится n элементов, причем вершиной его будет являться элемент n+1. Удаление элементов из стека осуществляется аналогичным образом т. е. удаляется последовательно по одному элементу, начиная с вершины, или по одной книге из стопки.