- •Понятие потока данных в Java. Типы потоков.
- •Общая схема записи данных в поток и чтения данных из потока.
- •Байтовый поток: свойства, связь потока с файлом, чтение и запись, закрытие.
- •Потоки символов: свойства, связь потока с файлом, чтение и запись, закрытие.
- •Поток строк: свойства, связь потока с файлов, чтение и запись, закрытие.
- •Исключения при работе с потоками.
- •Понятие рекурсии. Рекурсивное вычисление факториала.
- •Понятие рекурсии. Рекурсивное вычисление суммы элементов массива.
- •Понятие рекурсии. Рекурсивное вычисление максимума в массиве.
- •Формулировка задачи о Ханойских башнях.
- •Применение рекурсии при определении связного списка.
- •Понятие списка. Объявление элемента списка.
- •Структура объявления элемента двусвязного списка.
- •Типовые операции для односвязных списков.
- •Кольцевой и двусвязный списки: отличия от односвязного списка.
- •Порядок добавление элемента в односвязный список.
- •Рекурсивный и итерационный метод обработки списка (на примере печати списка)
- •Коллекции: множества – основные элементы интерфейса Set.
- •Структура простейшего гип-приложения.
- •Цвет в гип. Конструкторы и цветовые константы класса.
- •Кнопка. Состояние кнопки. События кнопки, их обработка и идентификация.
- •Структура программы, имеющей интерфейс с двумя кнопками.
- •Элемент интерфейса «условие» («флажок»), его конструкторы и обработка событий.
- •Элемент интерфейса «радиокнопка», его конструкторы и обработка событий радиокнопок.
Применение рекурсии при определении связного списка.
Понятие списка. Объявление элемента списка.
Список (англ. list) — это абстрактный тип данных, представляющий собой упорядоченный набор значений, в котором некоторое значение может встречаться более одного раза. Экземпляр списка является компьютерной реализацией математического понятия конечной последовательности — кортежа. Экземпляры значений, находящихся в списке, называются элементами списка (англ. item, entry либо element); если значение встречается несколько раз, каждое вхождение считается отдельным элементом.
Свойства
У определённой таким образом структуры данных имеются некоторые свойства:
Размер списка — количество элементов в нём, исключая последний «нулевой» элемент, являющийся по определению пустым списком.
Тип элементов — тот самый тип A, над которым строится список; все элементы в списке должны быть этого типа.
Отсортированность — список может быть отсортирован в соответствии с некоторыми критериями сортировки (например, по возрастанию целочисленных значений, если список состоит из целых чисел).
Возможности доступа — некоторые списки в зависимости от реализации могут обеспечивать программиста селекторами для доступа непосредственно к заданному по номеру элементу.
Сравниваемость — списки можно сравнивать друг с другом на соответствие, причём в зависимости от реализации операция сравнения списков может использовать разные технологии.
Структура объявления элемента двусвязного списка.
Суть объявления элемент двусвязного списка та же что и односвязного, просто у двусвязного есть две ссылки на предыдущую голову и последующую.
Д
вусвязный
список
Здесь ссылки в каждом узле указывают на предыдущий и на последующий узел в списке. По двусвязному списку можно передвигаться в любом направлении — как к началу, так и к концу. В этом списке проще производить удаление и перестановку элементов, так как всегда известны адреса тех элементов списка, указатели которых направлены на изменяемый элемент.
Типовые операции для односвязных списков.
Запись нового элемента в любое место списка.
Поиск элемента в любое место списка.
Кольцевой и двусвязный списки: отличия от односвязного списка.
Линейный связный список
Односвязный список (Однонаправленный связный список)
Здесь ссылка в каждом узле указывает на следующий узел в списке. В односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента, опираясь на содержимое текущего узла, невозможно.
Двусвязный список (Двунаправленный связный список)
Здесь ссылки в каждом узле указывают на предыдущий и на последующий узел в списке. По двусвязному списку можно передвигаться в любом направлении — как к началу, так и к концу. В этом списке проще производить удаление и перестановку элементов, так как всегда известны адреса тех элементов списка, указатели которых направлены на изменяемый элемент.
Кольцевой связный список
Разновидностью связных списков является кольцевой (циклический, замкнутый) список. Он тоже может быть односвязным или двусвязным. Последний элемент кольцевого списка содержит указатель на первый, а первый (в случае двусвязного списка) — на последний.
Реализация такой структуры происходит на базе линейного списка. В каждом кольцевом списке есть указатель на первый элемент. В этом списке константы NULL не существует.
Также существуют циклические списки с выделенным головным элементом, облегчающие полный проход через список.
