- Разработайте программы вставки и удаления элементов в красно-черном дереве
- Sample Code
- Выведите количество вариантов расстановки ладьи на шахматной доске, чтобы ни одна из них не угрожала другой
- Дан текст из строчных латинских букв, за которым следует точка. Определить каких букв-гласных (a,e,o,i,u) или согласных — больше в этом тексте
- Найдите значения функции y=x2+1,для x=0.2,0.4,0.6. 20
- Вычислить значение функции: y=sin(x/(3+x^5))+lg(1,3x+x^3)
- Дана последовательность целых чисел (от -100 до 100) записанных через пробел. Требуется построить эту последовательность по возрастанию
- Кодирование методом контроля чётности
- Вывести на экран сумму или произведение чисел в зависимости от условия
- Определить количество листьев, содержащих четные числа, в красно-чёрном дереве
Разработайте программы вставки и удаления элементов в красно-черном дереве
Двоичное дерево поиска называется красно-черным деревом,если оно обладает следующими свойствами:
— каждая вершина либо красная, либо черная
— каждый лист (NiL)- черный
— если вершина красная, оба ее потомка черные
— все пути, идущие вниз от корня к листьям, содержат одинаковое количество черных вершин.
Описание узла красно-черного дерева имеет вид:
pt=^Node; Node=Record color:-1..1; // Цвет вершины -1 - красный, +1 черный Key: integer; // Значение ключа left, right ,parent : pt; // Ссылка на родителя end;
Разработайте программы вставки и удаления элементов в красно-черном дереве.
Помогите пожалуйста на Паскале((
Добавлено через 1 час 7 минут
Алгоритм удаления узла в красно-черном дереве
Срочно задали написать алгоритм удаления узла красно-черного дерева(пока на словах!).Там.
NIL в красно-черном дереве
В Кормене, алгоритм добавления содержит значение NIL, а в алгоритме удаление говорится о.
Поиск в красно-черном дереве
Доброе утро! Изучая, Стандарт выполняю задание — создайте шаблон ассоциативного контейнера. В.
Определить количество листьев, содержащих четные числа, в красно-чёрном дереве
Определить количество листьев в красно-чёрном дереве, содержащих четные числа. Помогите пожалуйста.
Разработайте текстовый редактор содержимого одной строки. Предусмотрите режим вставки, удаления и замены символов.
6 (13):Разработайте текстовый редактор содержимого одной строки. Предусмотрите режим вставки.
Красно-черное прошитое дерево с функцией добавления и удаления элементов
Доброго времени Суток! Помогите пожалуйста,необходимо реализовать красно-чёрное дерево по таким.
Разработайте функцию для удаления из Си-программы всех комментариев
Помогите, пожалуйста, нужно разработать: функцию для удаления из Си-программы всех комментариев.
Поиск в двоичном дереве: Красно-чёрное дерево.
Искал в интернете, либо сложные коды в тысячу строк, либо непонятные термины (в теории о.
Источник
Sample Code
Выведите количество вариантов расстановки ладьи на шахматной доске, чтобы ни одна из них не угрожала другой
Выведите количество вариантов расстановки ладьи на шахматной доске, чтобы ни одна из них не угрожала другой. Размер доски NxN (n вводится пользователем). Предусмотрите возможность вывода и самих вариантов расстановки.
Дан текст из строчных латинских букв, за которым следует точка. Определить каких букв-гласных (a,e,o,i,u) или согласных — больше в этом тексте
Найдите значения функции y=x2+1,для x=0.2,0.4,0.6. 20
Задайте форматированный вывод для X всего 5 знаков, из них после запятой-один. Для Y всего восемь знаков, из них после запятой-два.
Вычислить значение функции: y=sin(x/(3+x^5))+lg(1,3x+x^3)
Дана последовательность целых чисел (от -100 до 100) записанных через пробел. Требуется построить эту последовательность по возрастанию
Дана последовательность целых чисел (от -100 до 100) записанных через пробел. Требуется построить эту последовательность по возрастанию. Входные данные: в первой строке записано целое число N, во вторйо строке последовательность чисел через пробел. Выходные данные: в единственной строке записать последовательность чисел по возрастанию.
Кодирование методом контроля чётности
Вводится k — число символов в блоке и последовательность двоичных символов, длина которой кратна (k-1). Если кратность нарушается, то последние символы последовательности игнорируются. Для каждой комбинации из (k-1) символов по методу контроля четности определяется значение k-ого, контрольного, символа и вся комбинация из k символов добавляется в результирующую последовательность, выводимую на экран по окончании кодирования всей входной последовательности символов.
Вывести на экран сумму или произведение чисел в зависимости от условия
Написать программу, запрашивающую 3 целых числа и выводящая сумму этих чисел на экран, если максимум этих чисел больше 12. Вывод на экран произведения этих чисел, если минимум этих чисел меньше или равен 12.
Источник
Определить количество листьев, содержащих четные числа, в красно-чёрном дереве
Поиск в красно-черном дереве
Доброе утро! Изучая, Стандарт выполняю задание — создайте шаблон ассоциативного контейнера. В.
NIL в красно-черном дереве
В Кормене, алгоритм добавления содержит значение NIL, а в алгоритме удаление говорится о.
Алгоритм удаления узла в красно-черном дереве
Срочно задали написать алгоритм удаления узла красно-черного дерева(пока на словах!).Там.
Разработайте программы вставки и удаления элементов в красно-черном дереве
Двоичное дерево поиска называется красно-черным деревом,если оно обладает следующими свойствами: .
да, открылось, но вот ясности это не дало. я в теории и так знаю что это, можно какой не будь пример реализации пожалуйста, как устроен Тайп, процедура печати, процедура создания дерева.
Добавлено через 14 часов 27 минут
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
program Project1; uses SysUtils, Windows; type //Основные данные узла дерева. TData = Integer; //Указатель на узел. TPNode = ^TNode; //Узел дерева. TNode = record Data : TData; //Основные данные узла дерева. PLeft, PRight : TPNode; //Указатель на левый и правый узел. end; //Рекурсивная процедура для построения дерева через пользовательский ввод. //Процедура добавляет дочерний узел к узлу aPNode. //aPNode - указатель на родительский узел. Если родительского узла нет (при //создании корня дерева), то aPNode = nil. //aLr = 1 - создать левый узел, иначе (если aLr <> 1) - создать правый узел. //aCode - код узла. Этот параметр предназначен для удобства ввода. //aCode = '0' - корневой узел дерева; //aCode = '0-1' - левый узел, связанный с корневым узлом. //aCode = '0-2' - правый узел, связанный с корневым узлом. //И т. д. // 0 // / \ // 0-1 0-2 // / \ / \ // 0-1-1 0-1-2 0-2-1 0-2-2 // / \ / \ // 0-1-1-1 0-1-1-2 0-2-2-1 0-2-2-2 procedure ReadNode(var aPNode : TPNode; const aLr : Integer; aCode : String); var PNode : TPNode; Data : TData; Code : Integer; S : String; begin //Определяем код узла. if aPNode = nil then aCode := '0' else aCode := aCode + '-' + IntToStr(aLr); //Ввод основных данных узла. Data := 0; repeat Write('Yzel ', aCode, '. Znach: '); Readln(S); Code := 0; if S <> '' then begin Val(S, Data, Code); if Code <> 0 then Writeln('Ne verii vvod.'); end; until Code = 0; //Если пользователь выбрал отмену при создании узла, то выходим. if S = '' then begin Writeln('Otmena.'); Exit; end; //Создаём узел, записываем в него данные и в зависимости от флага aLr //прикрепляем его к левой или к правой ветви родительского узла aPNode. New(PNode); PNode^.Data := Data; PNode^.PLeft := nil; PNode^.PRight := nil; if aPNode <> nil then begin if aLr = 1 then aPNode^.PLeft := PNode else aPNode^.PRight := PNode; end else aPNode := PNode; Writeln('Yzel sozdan'); //Рекурсивный вызов для создания левого узла. ReadNode(PNode, 1, aCode); //Рекурсивный вызов для создания правого узла. ReadNode(PNode, 2, aCode); end; //Освобождение памяти, занятой деревом. (Удаление дерева). procedure TreeFree(var aPNode : TPNode); begin if aPNode = nil then Exit; if aPNode^.PLeft <> nil then TreeFree(aPNode^.PLeft); if aPNode^.PRight <> nil then TreeFree(aPNode^.PRight); Dispose(aPNode); aPNode := nil; end; //Рекурсивная функция для подсчёта узлов с заданным значением ключа. function NumberOfLeaves(p: TPNode): integer; var total: integer; begin NumberOfLeaves := 1; total := 0; if (p^.PLeft= nil) and (p^.PRight = nil) then exit; if p^.PLeft <> nil then inc(total, NumberOfLeaves(p^.PLeft)); if p^.PRight <> nil then inc(total, NumberOfLeaves(p^.PRight)); NumberOfLeaves := total; end; var PTree : TPNode; Data : TData; Cmd, Code : Integer; S : String; begin //Переключение окна консоли на кодовую страницу CP1251 (Win-1251). //Если после переключения русские буквы показываются неверно, //следует открыть системное меню консольного окна - щелчком мыши в левом //верхнем углу окна консоли и выбрать: //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console". SetConsoleCP(1251); SetConsoleOutputCP(1251); //Начальная инициализация дерева. PTree := nil; repeat //Меню Writeln('Viberete deistvee:'); Writeln('1: Sozdanie dereva.'); Writeln('2: Proverka na pystoty.'); Writeln('3: Ydalit derevo.'); Writeln('4: Kol-vo listev.'); Writeln('5: Vixod.'); Write('Vvedite komandy: '); Readln(Cmd); case Cmd of 1: begin Writeln('Vvjd dereva.'); Writeln('chtoi otmenit nasmite Enter.'); TreeFree(PTree); ReadNode(PTree, -1, ''); Writeln('Derevo sozdano.') end; 2: if PTree = nil then Writeln('Pystoe.') else Writeln('Ne pystoe.'); 3: begin TreeFree(PTree); Writeln('Derevo ydaleno.'); end; 4: begin repeat TreeFree(PTree); Val(S, Data, Code); if Code <> 0 then Writeln('Kol-vo listev: ', NumberOfLeaves(PTree)); until Code = 0; end; 5: begin TreeFree(PTree); Writeln('ochisheno.'); end; else Writeln('Незарегистрированная команда. Повторите ввод.'); end; until Cmd = 5; Writeln('Работа программы завершена. Для выхода нажмите Enter.'); Readln; end.
Источник