Сборник заданий по методам программирования

Вид материалаУчебно-методическое пособие
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   16

Стек (с помощью указателей)



Задача:

Создается структура данных стек с необходимым набором операций:
    • создать пустой стек;
    • проверить стек на пустоту;
    • добавить элемент в стек;
    • удалить элемент из стека;
    • просмотреть все элементы стека.

Структура данных создается с использованием указателей.

Указания:

При работе с созданной структурой необходимо в случае добавления элемента выделять память под его хранение, а в случае удаления элемента высвобождать выделенную под его хранение память. Подробное описание стека списка и работы с ним можно найти в [2,3, 12].


    1. Стек (в виде массивов)



Задача:

Создается структура данных стек с необходимым набором операций:
    • создать пустой стек;
    • проверить стек на пустоту;
    • добавить элемент в стек;
    • удалить элемент из стека;
    • просмотреть все элементы стека.

Под структуру данных выделяется непрерывный участок памяти.

Указания:

При работе с созданной структурой необходимо анализировать ситуацию, когда число элементов в стеке превысит допустимое количество. В этой ситуации необходимо выделять дополнительно необходимое количество памяти, если это возможно. Подробное описание стека и работы с ним можно найти в [2,3, 12].
    1. Реализация задачи о Ханойских башнях



Задача:

Французский математик Эдуард Люка 1883 году предложил задачу-головоломку о Ханойских башнях. Согласно легенде башня Брамы состоит из 64 дисков чистого золота, нанизанных в порядке уменьшения размеров на один из трех алмазных шпилей. При сотворении мира Всевышний поместил диски на первый шпиль и повелел, чтобы жрецы переместили их на третий, перенося каждый раз только один диск и не помещая больший диск на меньший. По имеющимся сведениям жрецы трудятся над этой задачей денно и нощно – как только они закончат, башня рассыплется в прах и наступит конец света. Необходимо определить количество перемещений дисков, необходимое и достаточное для выполнения поставленной задачи.


Указания:

Реализуйте алгоритм, описанный в [8,12,20]. Необходимо использовать структуру данных стек. Создается три стека. Один содержит диаметры дисков в порядке их возрастания, а два других пусты. По окончании работы алгоритма все числа окажутся в порядке возрастания в одном из стеков. В процессе работы подсчитывается число перезаписей чисел из стека в стек (см. [20]).


    1. Реализовать разбор арифметических формул(*)



Задача:

Реализовать разбор арифметических формул с использованием стеков. В формулах присутствуют операции сложения, умножения, вычитания и скобки.

Указания:

Об основах построения трансляторов можно прочитать в [21]


    1. Создать структуру данных ОЧЕРЕДЬ (выделяя непрерывный участок памяти)



Задача:

Создается структура данных очередь с необходимым набором операций:
    • создать пустую очередь;
    • проверить очередь на пустоту;
    • добавить элемент в очередь;
    • удалить элемент из очереди;
    • просмотреть все элементы очереди.

Под структуру данных выделяется непрерывный участок памяти.


Указания:

При работе с созданной структурой необходимо анализировать ситуацию, когда число элементов в очереди превысит допустимое количество. В этой ситуации необходимо выделять дополнительно необходимое количество памяти, если это возможно. Подробное описание очереди списка и работы с ней можно найти в [2,3, 12].


    1. Создать структуру данных ОЧЕРЕДЬ с использованием указателей




Задача:

Создается структура данных очередь с необходимым набором операций:
    • создать пустую очередь;
    • проверить очередь на пустоту;
    • добавить элемент в очередь;
    • удалить элемент из очереди;
    • просмотреть все элементы очереди.

Структура данных создается с использованием указателей.

Указания:

При работе с созданной структурой необходимо в случае добавления элемента выделять память под его хранение, и в случае удаления элемента освобождать выделенную под его хранение память. Подробное описание очереди и работы с ней можно найти в [2,3, 12].


    1. Создать структуру данных ДВОИЧНОЕ ДЕРЕВО ПОИСКА, выделяя непрерывный участок памяти.



Задача:

Создается структура данных двоичное дерево поиска с необходимым набором операций:
  • создать пустое дерево;
  • проверить дерево на пустоту;
  • добавить элемент в дерево;
  • удалить элемент из дерева;
  • просмотреть все элементы дерева;
  • реализовать обход дерева.

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


Указания:

При работе с созданной структурой необходимо анализировать ситуацию, когда элемент, вставляемый в дерево, окажется за пределами выделенной памяти. В этой ситуации необходимо выделять дополнительно необходимое количество памяти, если это возможно. Подробное описание двоичного дерева поиска и работы с ним можно найти в [1-9,12]