Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 8 - Презентация

.pdf
Скачиваний:
57
Добавлен:
25.12.2020
Размер:
10.74 Mб
Скачать

Центрдистанционногообучения

Удаление из Double-Linked List

online.mirea.ru

Центрдистанционногообучения

Циклические списки

• Циклические связаныу список: связать последний узел двусвязаного списка с первым узлом и первый с последним

• Преимущество: может двигаться в прямом или обратном направлении по списку, даже после того, как вы прошли последний или первый узел

üможно посетить все элементы списка из любой начальной точки

Никогда нельзя выйти за пределы списка ( за последний элемент)

Неудобство: бесконечный цикл!

online.mirea.ru

Центрдистанционногообучения

Циклические списки (продолжение)

online.mirea.ru

Центрдистанционногообучения

• Часть Java API

Класс LinkedList<E>

• Реализует интерфейс List<E> с использованием двусвязного списка (double-linked list)

online.mirea.ru

Центрдистанционногообучения

Интерфейс Iterator<E> Interface

• Интерфейс итератора Iterator составляет часть пакета API java.util

• В интерфейсе List объявлен метод итератора, который возвращает объект итератора, который будет выполнять итерацию по элементам этого списка

• Iterator не относится к какому либо элементу и не указывает на конкретный узел в данный момент времени, но точки между узлами

online.mirea.ru

Центрдистанционногообучения

Интерфейс ListIterator<E> (продолжение)

online.mirea.ru

Центрдистанционногообучения

ИнтерфейсОграничения IteratorListIterator<E>

Можно только пройти списка в прямом направлении

Обеспечивает только метод удаления

Необходимо заранее реализовывать итератор, используя свой

собственный цикл, если исходное положение не в начале списка

ListIterator<E> является расширением Iterator<E>для преодоления ограничений

Можно представить Итератор как закладку, которая позиционируется между элементами связанного списка

online.mirea.ru

Центрдистанционногообучения

Интерфейс ListIterator<E> (продолжение)

online.mirea.ru

Центрдистанционногообучения

Интерфейс ListIterator<E> (продолжение)

online.mirea.ru

Центрдистанционногообучения

Сравнение Iterator и ListIterator

ListIterator является подинтерфейсом интерфейса Iterator;

классы, которые реализуют ListIterator обеспечивают все возможности и кроме того интерфейс итератора требует меньшего количества методов и может использоваться для итерации по более общим структурам данных, но только в одном направлении

Для Iterator требуется интерфейс Collection, в то время как для ListIterator требуется только интерфейс List

online.mirea.ru