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

112
Оптимальным образом найти k-й наименьший элемент в двоичном дереве поиска

Мне нужно найти k-й наименьший элемент в двоичном дереве поиска без использования какой-либо статической / глобальной переменной. Как этого добиться эффективно? Решение, которое я имею в виду, - это выполнение операции за O (n), наихудший случай, поскольку я планирую выполнить обход всего дерева по...

112
Красное черное дерево над деревом авл

AVL и красно-черные деревья являются самобалансирующимися, за исключением красного и черного цветов в узлах. Какова основная причина выбора красно-черных деревьев вместо деревьев AVL? Каковы применения красно-черных деревьев?...

111
Существуют ли какие-либо библиотеки C с открытым исходным кодом с общими структурами данных? [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...

111
Как лучше всего структурировать данные в firebase?

Я новичок в firebase и хочу знать, как лучше всего структурировать данные на нем. У меня есть простой пример: В моем проекте есть соискатели и заявки. 1 заявитель может подать несколько заявок. Как я могу связать эти 2 объекта с firebase? Работает ли это как реляционная база данных? Или подход...

110
При каких обстоятельствах полезны связанные списки?

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

109
Как перевернуть односвязный список, используя только два указателя?

Интересно, существует ли какая-то логика для изменения односвязного списка с использованием только двух указателей. Ниже используется для изменения одного связанного списка с использованием трех указателей , а именно p, q, r: struct node { int data; struct node *link; }; void reverse() { struct...

109
В чем преимущество использования фильтров Блума?

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

106
Представление графиков (структуры данных) в Python

Как можно аккуратно изобразить граф на Python ? (Начиная с нуля, т.е. без библиотек!) Какая структура данных (например, dicts / tuples / dict (кортежи)) будет быстрой, но при этом эффективной с точки зрения памяти? Над ним нужно уметь выполнять различные операции с графом . Как уже отмечалось,...

104
Преимущества двоичных деревьев поиска перед хеш-таблицами

Каковы преимущества двоичных деревьев поиска перед хеш-таблицами? Хеш-таблицы могут искать любой элемент во времени Theta (1), и так же легко добавить элемент ... но я не уверен в преимуществах обратного....

102
Практическое использование различных структур данных [закрыто]

Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт в прошлом году . Уточните этот вопрос О структурах данных много говорят,...

102
Проверьте, объединяются ли два связанных списка. Если да, то где?

Этот вопрос может быть старым, но я не мог придумать ответа. Скажем, есть два списка разной длины, сливающиеся в одной точке ; как мы узнаем, где находится точка слияния? Условия: Мы не знаем длины Мы должны анализировать каждый список только один раз....

101
Рекурсивное изменение связанного списка в Java

Я уже некоторое время работаю над Java-проектом для класса. Это реализация связанного списка (называемого здесь AddressList, содержащего простые узлы ListNode). Загвоздка в том, что все придется делать с помощью рекурсивных алгоритмов. Я мог делать все нормально без одного метода:public...

98
Когда следует использовать стратегии обхода двоичного дерева поиска с предварительным порядком, после и без порядка

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

96
Структура данных: вставить, удалить, содержит, получить случайный элемент, все в O (1)

Мне рассказали об этой задаче в интервью. Как бы вы ответили? Разработайте структуру данных, которая предлагает следующие операции за время O (1): вставить удалять содержит получить случайный элемент...

95
Почему алгоритм Дейкстры использует ключ уменьшения?

Алгоритм Дейкстры был представлен мне следующим образом while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) Но я...

94
Самый эффективный способ хранить тысячи телефонных номеров

Это вопрос для интервью в Google: Можно сохранить около тысячи телефонных номеров, каждый из которых состоит из 10 цифр. Вы можете предположить, что первые 5 цифр каждой из тысяч номеров одинаковы. Вам необходимо выполнить следующие операции: a. Найдите, существует ли данный номер. б. Распечатать...