- •Ответы на экзамен по программированию
- •24.Подпрограммы, функции
- •25. Абстрактные методы, классы языка Java
- •26. Статические поля и методы ооп
- •27.Интерфейсы языка Java. Пакеты
- •28. Наследование классов
- •Простое наследование
- •Множественное наследование
- •29. Смешанные языки программирования
- •30. Языки Интернета
- •32.Управляющие конструкции языков программирования
- •33. Динамические структуры данных. Списки. Стеки. Очереди
- •34. Программирование в ms Visual Studio
32.Управляющие конструкции языков программирования
Большинство управляющих конструкций языков программирования построено именно таким образом. Такими конструкциями являются - составной оператор, условный оператор, оператор варианта, операторы циклов. Приведем диаграммы некоторых управляющих конструкций языка, демонстрирующих требование к структурности этих конструкций.
33. Динамические структуры данных. Списки. Стеки. Очереди
Списки
Выделим типовые операции над списками:
добавление звена в начало списка;
удаление звена из начала списка;
добавление звена в произвольное место списка, отличное от начала (например, после звена, указатель на которое задан);
удаление звена из произвольного места списка, отличного от начала (например, после звена, указатель на которое задан);
проверка, пуст ли список;
очистка списка;
печать списка.
Cтеки
Стек — динамическая структура данных, представляющая из себя упорядоченный набор элементов, в которой добавление новых элементов и удаление существующих производится с одного конца, называемого вершиной стека.
По определению, элементы извлекаются из стека в порядке, обратном их добавлению в эту структуру, т.е. действует принцип "последний пришёл — первый ушёл".
Наиболее наглядным примером организации стека служит детская пирамидка, где добавление и снятие колец осуществляется как раз согласно определению стека.
Стек можно организовать на базе любой структуры данных, где возможно хранение нескольких однотипных элементов и где можно реализовать определение стека: линейный массив, типизированный файл, однонаправленный или двунаправленный список. В нашем случае наиболее подходящим для реализации стека является однонаправленный список, причём в качестве вершины стека выберем начало этого списка.
Выделим типовые операции над стеком и его элементами:
добавление элемента в стек;
удаление элемента из стека;
проверка, пуст ли стек;
просмотр элемента в вершине стека без удаления;
очистка стека.
Очереди
Очередь — это информационная структура, в которой для добавления элементов доступен только один конец, называемый хвостом, а для удаления — другой, называемый головой. В англоязычной литературе для обозначения очередей довольно часто используется аббревиатура FIFO (first-in-first-out — первый вошёл — первым вышел).
Очередь разумнее всего моделировать, отобразив её на двунаправленный кольцевой список. В этом случае в заглавном звене будет присутствовать информация как об указателе на голову, так и на хвост очереди.
Выделим типовые операции над очередями:
добавление элемента в очередь (помещение в хвост);
удаление элемента из очереди (удаление из головы);
проверка, пуста ли очередь;
очистка очереди.
34. Программирование в ms Visual Studio
