Лабораторная работа 2 Структуры данных типа "Стек"
1.Общие понятия
Стеком называется линейно-упорядоченная последовательность Е(1), Е(2), Е(n), где n>0, причем каждый элемент характеризуется одним и тем же набором полей. В общем случае "n" не является const. Это обстоятельство позволяет назвать стек полустатической структурой. В стеке реализуется принцип
LIFO (последний пришел- первый ушел), или по-другому принцип "мешка"- то, что положено в последнюю очередь, вынимается в первую. Этот принцип оказывается очень удобным при решении некоторых специальных задач, связанных, например, с использованием рекурсии или анализом арифметических выражений. Он поддерживается обращением к стеку через указатель, указывающий на верхний занятый слот (значение этого указателя изменяется в пределах, определённых при описании стека). При этом можно говорить об обычной модели стека, если все операции производятся только над верхними элементами стека, и о расширенной модели стека, в которой могут производиться операции и над элементами, лежащими в глубине стека. Нужно помнить, что стек считается одной из самых "быстродействующих структур". Поэтому при использовании расширенной модели стека число операций с верхними элементами должно быть существенно больше, чем с глубинными, так как в противном случае стек теряет свои "скоростные" качества и его применение становиться нецелесообразным.
2. Цель работы
Целью работы является изучение и отработка приемов и навыков использования стеков в организации алгоритмических структур. Машинная реализация этих структур планируется на языке Турбо Паскаль или С++.
3. Варианты заданий на выполнение работы
При выполнении заданий следует задействовать все стандартные операции работы со стеком, каждая из которых должна быть оформлена в виде отдельной процедуры или функции.
-
Используя стек, сравнить символьный запрос с набором шаблонов.
-
Используя стек, разработать механизм вычисления арифметических выражений, записанных в постфиксной форме.
-
В режиме мультистека (не менее 4-х простых стеков) организовать сравнение элементов простых стеков, находящихся на одинаковом расстоянии от вершины стека с последующим выводом одинаковых элементов на экран.
-
Используя стек, разработать процедуру изъятия некорректных скобок и интервалов в арифметических выражениях, записанных в инфиксной х форме.
-
Используя стек, преобразовать инфиксную форму в постфиксную.
-
Используя стек, создать простейшую БД, содержащую сведения о студентах.
-
Используя стек, вывести из экзаменационной ведомости список студентов, получивших одинаковые оценки.
-
Используя стек, сосчитать вероятность появления в тексте букв: а, б, в.
-
Используя стек, определить символ, наиболее часто появляющийся в случайно выбранном тексте.
-
Используя стек, разработать процедуру изъятия лишних скобок.
-
Разработать комплекс процедур, позволяющих организовать работу двух стеков, которые занимают одну область памяти.
-
Используя стек, построенный в динамической памяти, введенную последовательность символов прочитать в обратном порядке, устранив повторяющие символы.
-
Объединить два стека в один таким образом, чтобы элементы в нем следовали в алфавитном порядке.
-
Для стека, организованного в динамической памяти, построить все стандартные операции со стеками.
-
Организовать обмен данных между двумя стеками, один из которых построен на статической памяти, а другой на динамической.
-
Перевести выражение, представленное в постфиксной форме, в инфиксную.
-
Организовать с помощью стека передачу локальных параметров в подпрограмму при встроенном ассемблере.
-
Использование стека для вывода числа в 4 байтном формате на ассемблере.
-
Перевести префиксное выражение в инфиксное.
-
Используя стек, вычислить выражение в префиксной форме.
-
Перевести инфиксное выражение в префиксное.
-
Построить стек на основе элементов, расположенных в центральной вертикали таблицы.
-
Построить стек на основе элементов, расположенных в центральной горизонтали таблицы
-
Построить стек на основе элементов, расположенных в таблицы со смещением
-
Построить стек на основе элементов, расположенных в смещенной вертикали таблицы.
-
Построить стек на основе элементов, расположенных в нижней горизонтали таблицы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|