Эффективность LinkedList в Java в реальном времени - PullRequest
0 голосов
/ 29 ноября 2018

Мы знаем, что структура данных Double LinkedList имеет преимущество вставки узла за O (1) время, если вы уже получили узел до или после местоположения, которое вы хотите вставить.(например, если у вас есть двойной связанный список: ABCD, если вы уже получили узел C, то для вставки нового узла до или после узла C требуется только O (1)).

Если вывручную создать двойной связанный список в Java / C ++, это довольно легко понять, но недавно я заинтересовался библиотекой LinkedList в Java, которая представляет собой структуру данных двойного связанного списка, предлагаемую в java.util.Если я хочу использовать библиотеку LinkedList, предоставляемую java, как я могу выполнить вставку или удаление O (1), как я упоминал в первом абзаце?Я провел некоторое исследование, вы можете создать ListIterator LinkedList, который может перемещаться вперед и назад, затем вставлять и удалять прежний или после узла.Но это все еще нуждается в прохождении.Если у меня уже есть узел C и как я могу напрямую получить соответствующий итератор за O (1) раз?

1 Ответ

0 голосов
/ 29 ноября 2018

Класс LinkedList обеспечивает O (1) время вставки / удаления во время обхода или в начале / конце списка.Это не означает, что вы можете взять случайный узел в середине списка и удалить его или вставить какой-нибудь узел рядом с ним за O (1) раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...