Исполнители
Общие предписания:
1. Начать работу
2. Закончить работу
3. Сделать пустым
4. Пуст? <вых: да/нет>
Стек. Список предписаний:
5. Показать вершину стека <вых: элемент>
6. Удалить из стека
7. Положить в стек <вх: элемент>
Дек. Список предписаний:
5. Показать начало дека <вых: элемент>
6. Показать конец дека <вых: элемент>
7. Удалить из начала
8. Удалить из конца
9. Положить в начало <вх: элемент>
10. Положить в конец <вх: элемент>
Л1 список (линейный однонаправленный). СП:
5. Указатель в начало
6. Указатель в конце? <вых: да/нет>
7. Элемент за указателем <вых: элемент>
8. Удалить элемент за указателем
9. Добавить элемент за указателем <вх: элемент>
Л2 список (линейный двунаправленный). СП:
5. Указатель в начало
6. Указатель в конец
7. Указатель в начале? <вых: да/нет>
8. Указатель в конце? <вых: да/нет>
9. Элемент за указателем <вых: элемент>
10. Элемент до указателя <вых: элемент>
11. Удалить элемент за указателем
12. Удалить элемент до указателя
13. Добавить элемент за указателем <вх: элемент>
14. Добавить элемент до указателя <вх: элемент>
Очередь. СП:
5. Добавить в конец <вх: элемент>
6. Взять из начала <вых: элемент>
Реализация исполнителя на базе других исполнителей
Пример: Реализация очереди на базе дека
Предписание Добавить в конец <вх: элемент>
Дек. Добавить в конец <вх: элемент>
Конец предписания
Предписание Взять из начала <вых: элемент>
Дек. Показать начало <вых: элемент>
Дек. Удалить из начала
Конец предписания
Задачи
1. Реализовать очередь на базе Л1 списка
2. Реализовать Л2 список на базе двух стеков