Публикации по теме 'binary-search-tree'


Сбалансированные бинарные деревья
Давайте погрузимся в прекрасный мир сбалансированных бинарных деревьев! Как мы видели в предыдущей статье, бинарные деревья помогают выполнять операции поиска. Однако то, как они расположены, существенно влияет на исполнение. Взгляните на следующее дерево: Это соответствует определению BST: для каждого узла левый дочерний элемент имеет более низкое значение, а правый дочерний элемент имеет более высокое значение. Однако вы можете быстро увидеть, что есть только правильные дети. В..

Назад к основам - Структуры данных Том I. Деревья двоичного поиска
Что такое серия «Назад к основам»? Я назвал эту серию «Назад к основам», но название здесь может быть немного обманчивым. Основы здесь не означают, что обсуждаемые темы будут легкими, и они не будут темами, которые вы уже должны знать наизусть. Но это темы, которые помогут вам лучше понять каждую строку кода, который вы пишете. У меня очень твердое мнение, что программирование не должно сводиться только к написанию кода. Быть программистом - это гораздо больше. Это включает в себя..

Вопросы по теме 'binary-search-tree'

C++ Binary Search Tree Функция рекурсивного поиска
template <class T> bool BST<T>::search(const T& x, int& len) const { return search(BT<T>::root, x); } template <class T> bool BST<T>::search(struct Node<T>*& root, const T& x) { if (root ==...
21605 просмотров
schedule 03.09.2022

Процедура удаления бинарного дерева поиска
Рассмотрим процедуру удаления на BST, когда удаляемый узел имеет двух дочерних узлов. Скажем, я всегда заменяю его узлом, содержащим минимальный ключ в его правом поддереве. Возникает вопрос: коммутативна ли эта процедура? То есть удаление x, а...
17055 просмотров

Найти преемника без использования родительского указателя
Преемником элемента в BST является преемник элемента в порядке сортировки, определяемом неупорядоченным обходом. Поиск преемника, когда каждый узел имеет указатель на его родительский узел, представлен в учебнике по алгоритмам CLRS (Introduction to...
10376 просмотров
schedule 07.12.2022

сбалансированное бинарное дерево поиска с использованием sortedset
Пожалуйста, помогите. Я пытался сгенерировать случайное двоичное дерево поиска размером 1024, и элементы должны быть отсортированы случайным образом... Я могу написать код для создания двоичного дерева поиска вручную, добавляя элементы вручную, но я...
1894 просмотров
schedule 02.05.2024

Каковы преимущества T-деревьев перед B +/- деревьями?
Я изучил определения T-деревьев и B- / B + деревьев. Из статей в Интернете я понимаю, что B-деревья лучше работают в иерархической памяти, такой как дисковые накопители и кэшированная память. Я не могу понять, почему T-деревья использовались /...
2151 просмотров

Почему std :: map реализован в виде красно-черного дерева?
Почему std::map реализован как красно-черное дерево ? Существует несколько сбалансированных двоичных деревьев поиска (BST). Какие компромиссы были при выборе красно-черного дерева?
93872 просмотров

C++ — вопрос об ошибке GDB
Я работаю над двоичным деревом поиска на С++. Я получаю следующие сообщения об ошибках после запуска gdb (я получаю segfault) в моей программе: #0 0x08049058 in searchTree::tree_node<int>::getLeft (this=0x0) at bst.hxx:75 #1 0x08048ed8 in...
481 просмотров
schedule 01.09.2022

Не понимаю этот пример алгоритма двоичного дерева поиска (BST)
В коде удаления из здесь . Я не понимаю первый фрагмент кода удаления (где у узла нет двух дочерних элементов). Если у удаляемого узла есть родитель и сам дочерний элемент (т. е. у узла есть один дочерний элемент), как это работает? Код...
255 просмотров
schedule 21.03.2024

Нахождение k-го наименьшего значения в BST
Вот что мне нужно, чтобы найти k-е наименьшее значение в двоичном дереве поиска: struct treeNode { int data; struct treeNode *left, *right: }; int rank(stuct treeNode* ptr, int k) { if(node == NULL) return root;...
1522 просмотров
schedule 14.01.2023

Чтобы найти самый большой элемент меньше, чем K в BST
Учитывая двоичное дерево поиска и целое число K, я хотел бы найти самый большой элемент меньше, чем K. В дереве ниже, for K = 13, result = 12 for K = 10, result = 8 for K = 1 (or) 2, result = -1 10 5 12 2 8 11 14 Я...
9557 просмотров
schedule 31.08.2022

Оптимальные бинарные деревья поиска
У меня есть задание по оптимальным бинарным деревьям поиска, и при его выполнении возникло несколько вопросов. Я нашел много ссылок в Интернете полезными (только из поиска Google), но мне было интересно... Почему ключи должны быть изначально...
1290 просмотров
schedule 03.09.2022

Удаление узла из двоичного дерева поиска
Моя программа Binary Search Tree, кажется, ничего не удаляет, когда я вызываю метод deleteNode. BST построен идеально, просто удаляется часть узла, которая не работает. Я называю это из моего основного следующим образом:...
9261 просмотров
schedule 03.06.2024

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

Бинарное дерево поиска haskell
module Main where import Data.List import Data.Function type Raw = (String, String) icards = [("the", "le"),("savage", "violent"),("work", "travail"), ("wild", "sauvage"),("chance", "occasion"),("than a", "qu'un")] data Entry = Entry...
1742 просмотров
schedule 12.11.2023

сортировать массив перед добавлением в дерево двоичного поиска Java
У меня есть массив строк в порядке от A до Z. Мне было интересно, как лучше всего отсортировать их для сбалансированного двоичного дерева поиска. Моя первоначальная мысль состоит в том, чтобы разделить массив на первую половину и вторую половину, а...
2790 просмотров
schedule 22.11.2023

Почему malloc не работает в моей собственной реализации дерева BST
Это определение узла: typedef struct drzewo BST; struct drzewo { int key; BST *left; BST *right; BST *p; }; и я пытаюсь написать функцию добавления: BST *add( BST *root, int val) { BST *x = root; BST *nowe...
353 просмотров
schedule 01.12.2023

Построение BST из заданного обхода постордера
У меня есть массив postorder размера дерева BST n, как мне показать, что из него можно построить только один BST. Я знаю, что могу перестроить дерево, если добавляю узлы справа налево, но как показать, что есть только одно правильное дерево? Я...
2389 просмотров
schedule 19.05.2022

Добавление объектов в бинарное дерево поиска
Я совершенно новичок в BST и в том, как они работают, если это совершенно неправильно, было бы признательно, если бы я мог получить ссылку на справочный сайт или что-то в этом роде. прямо сейчас я пишу программу для добавления значений из ArrayList...
6859 просмотров
schedule 23.10.2022

Как распечатать двоичное дерево поиска?
привет, я реализовал bst в mips, и мне нужно распечатать это дерево. Каждый узел имеет следующие четыре информации его значение адрес родителей оставил адрес ребенка правильный адрес ребенка я должен напечатать дерево в...
1271 просмотров

Балансировка двоичного дерева поиска (BST)
Я пытаюсь создать функцию balance_bst (корень bstNode), но я борюсь с реализацией. Я реализую функцию как функцию шаблона, поскольку мой класс bstNode является классом шаблона. Вот (некоторые) мой код: template<class Item, class Key>...
23237 просмотров
schedule 09.01.2023