Oukey / JavaAlgo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Java. Алгоритмы и структуры данных (примeры)

Оглавление

Связанный список

  • представляет из себя цепочку узлов. Каждый узел хранит информацию (значение) и ссылку на следующий узел

  • временная сложность: индексация = O(n); поиск = O(n); вставка = O(1); удаление = O(1).

    Пример кода

Двунаправленный связанный список

  • цепочка узлов. Каждый узел хранит информацию, ссылку на следующий узел и на предыдущий

  • временная сложность: индексаций = O(n); поиск = O(n); вставка = O(1); удаление = O(1).

    Пример кода

Динамический массив

  • индексируется

  • позволяет добавлять элементы в позиции по индексу

  • автоматически расширяется при добавлении новых элементов и сжимается при удалении

  • временная сложность: индексация O(1); поиск O(n); вставка O(n); удаление O(n).

    Пример кода

Стек

  • простой тип данных, который представляет собой линейное хранилище элементов

  • из стека есть только один выход, он же вход

  • работает по принципу "последний вошёл - первый вышел"

  • подходящая аналогия - магазин/обойма огнестрельного оружия

    Пример кода

Очередь

  • простой тип данных, который представляет собой линейное хранилище элементов

  • отличается от стека наличием входа и выхода

  • работает по принципу "первый вошёл - первый вышел"

    Пример кода

Упорядоченный список

  • хранит данные в упорядоченном виде

  • позиция каждого элемента в списке определяется автоматически по значению относительно других элементов

    Пример кода

About


Languages

Language:Java 100.0%