Вопросы с тегом «data-structures»

25
Почему алгоритм вращения Splay Tree учитывает как родительский, так и родительский узел?

Я не совсем понимаю, почему при ротации в структуре данных Splay Tree учитывается не только родительский узел рейтингового узла, но и прародитель (операция zig-zag и zig-zig). Почему следующее не работает: Когда мы вставляем, например, новый узел в дерево, мы проверяем, вставляем ли мы в левое или...

24
Получение кратчайшего пути динамического графа

Я изучаю кратчайшие пути в ориентированных графах в настоящее время. Существует много эффективных алгоритмов для поиска кратчайшего пути в сети, например, dijkstra или bellman-ford. Но что, если график является динамическим? Говоря динамически, я имею в виду, что мы можем вставлять или удалять...

23
Есть ли эквивалент деревьев Ван Эмде Боаса для канатов?

Кто-то, кого я знаю, планирует внедрить текстовый редактор в ближайшем будущем, что побудило меня задуматься о том, какие структуры данных бывают быстрыми для текстового редактора. Наиболее часто используемые конструкции - это, по-видимому, канаты или зазоры . Деревья Van Emde Boas - это почти...

23
Как работает таблица маршрутизации Population Pastry?

Этот вопрос был перенесен из Биржи стека разработки программного обеспечения, поскольку на него можно ответить в Бирже стеков информатики. Мигрировал 7 лет назад . Я пытаюсь реализовать распределенную хэш-таблицу для выпечки, но некоторые вещи ускользают от моего понимания. Я надеялся, что кто-то...

22
Какая комбинация структур данных эффективно хранит дискретные байесовские сети?

Я понимаю теорию, лежащую в основе байесовских сетей, и мне интересно, что нужно для ее создания на практике. Скажем для этого примера, что у меня есть байесовская (направленная) сеть из 100 дискретных случайных величин; каждая переменная может принимать одно из 10 значений. Сохраняю ли я все узлы...

22
Почему мы используем постоянные структуры данных в функциональном программировании?

Функциональное программирование использует постоянные структуры данных и неизменные объекты. Мой вопрос: почему важно иметь такие структуры данных здесь? Я хочу понять на низком уровне, что произойдет, если структура данных не является постоянной? Будет ли программа зависать...

22
AVL деревья не сбалансированы по весу?

В предыдущем вопросе было определение деревьев с балансом веса и вопрос, касающийся красно-черных деревьев. Этот вопрос, чтобы задать тот же вопрос, но для деревьев AVL . Вопрос в том, что, учитывая определение μμ\mu сбалансированных деревьев, как в другом вопросе, Существует ли такое...

21
Структура данных для пересечения множества?

Существует ли какая-либо структура данных, которая поддерживает набор множеств (конечного наземного множества), поддерживающий следующие операции? Любое сублинейное время работы будет оценено? Инициировать пустой набор. Добавить элемент в набор. Учитывая два набора, сообщают, пересекаются ли они....

21
Все ли типы данных сводятся к узлам с указателями?

Массив или вектор - это просто последовательность значений. Они, безусловно, могут быть реализованы с помощью связанного списка. Это просто набор узлов с указателями на следующий узел. Стеки и очереди - это два абстрактных типа данных, которые обычно преподаются на курсах Intro CS. Где-то в классе...

20
Эффективное сжатие немеченых деревьев

Рассмотрим немаркированные, укоренившиеся двоичные деревья. Мы можем сжать такие деревья: всякий раз , когда есть указатели на поддерева и с (интерпретируя как структурное равенство), мы сохраняем (без потери общности) и заменить все указатели на с указателями на . См . Ответ Ули для примера.T ′ T...

20
Существует ли существующая структура данных фиксированного размера, которая вытеснит самый старый / последний элемент, если будет добавлен новый элемент?

Я ищу структуру данных, которая вытолкнет его самый старый / последний элемент, если новый элемент будет вставлен. Например, давайте Dпредставим структуру. Dсодержит 3 элемента типа Number Dзначения по умолчанию будут инициализированы в 1, 2и 3. D = [ 1 , 2 ,3 ]Dзнак равно[1,2,3]D = [1, 2, 3] Если...

20
Используются ли когда-либо деревья с вырезанными ссылками на практике, для вычисления максимального потока или других приложений?

Многие алгоритмы максимального потока, которые я обычно вижу реализованными, алгоритм Dinic, push relbel и другие, могут улучшить свои асимптотические временные затраты за счет использования динамических деревьев (также известных как деревья среза ссылок). Push-релабель запускается в или или...

20
Проблемы, для которых алгоритмы, основанные на уточнении разделов, работают быстрее, чем за логлиническое время

Уточнение разделов - это техника, в которой вы начинаете с конечного набора объектов и постепенно разбиваете набор. Некоторые проблемы, такие как минимизация DFA, могут быть достаточно эффективно решены с помощью уточнения разделов. Я не знаю никаких других проблем, которые обычно решаются с...

20
Без блокировки, постоянное время обновления параллельных древовидных структур данных?

В последнее время я немного читал литературу и нашел довольно интересные структуры данных. Я исследовал различные методы уменьшения времени обновления до худшем случае [1-7].O ( 1 )О(1)\mathcal{O}(1) Недавно я начал изучать структуры данных без блокировок для поддержки эффективного параллельного...

20
Создание самостоятельного бинарного дерева

У меня есть задание, в котором мне нужно использовать двоичное дерево поиска и изменить его на самоупорядочение таким образом, чтобы элементы, к которым обращаются чаще всего (имеют более высокий приоритет), находились в верхней части дерева, причем корень является наиболее доступным узлом ,...

20
Поддержка структур данных для локального поиска SAT

WalkSAT и GSAT являются хорошо известными и простыми алгоритмами локального поиска для решения проблемы булевой выполнимости. Псевдокод для алгоритма GSAT скопирован с вопроса Реализация алгоритма GSAT - Как выбрать, какой литерал переворачивать? и представлены ниже. procedure...

19
Почему функциональное программирование не исследовало динамические деревья?

Динамические деревья играют важную роль в решении таких проблем, как сетевые потоки, динамические графы, комбинаторные задачи («Динамические деревья на практике» Тарьяна и Вернека) и недавно объединенные словари («Простой объединяемый словарь» Адама Карчмара), Под динамическими деревьями я ссылаюсь...

19
Экономия на инициализации массива

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

19
Взвешенная сумма последних N чисел

Предположим, мы получаем цифры в потоке. После получения каждого числа необходимо вычислить взвешенную сумму последних NNN чисел, где веса всегда одинаковы, но произвольны. Насколько эффективно это можно сделать, если нам разрешено сохранять структуру данных, чтобы помочь с вычислениями? Можем ли...