ytt2
08.07.2021 00:47

программа на c#
для класса searchtree из примера добавьте следующие поля, свойства и методы:
 закрытое поле count, подсчитывающее количество вершин дерева;
 свойство count, возвращающее количество вершин дерева;
 метод isempty, возвращающий true, если дерево пусто, или false в противном случае;
 метод clear, удаляющий дерево.

using system;
using system.collections.generic;
using system.text;
namespace binarytrees
{
// двоичное дерево поиска
public class searchtree
{
// узел дерева
class node
{
public double value { get; set; } // хранимое в узле значение
public node left { get; set; } // ссылка на левое поддерево
public node right { get; set; } // ссылка на правое поддерево
// конструктор (создает узел дерева)
public node(double val)
{
value = val;
left = right = null;
}
}
node root = null; // ссылка на корень дерева
// добавление элемента в дерево
public void add(double val)
{
if (root == null)
{
root = new node(val);
return;
}
node current = root; // ссылка на текущий узел
while (true)
{
if (val < current.value)
{
if (current.left == null)
{
current.left = new node(val);
return;
}
else
current = current.left;
}
else
{
if (current.right == null)
{
current.right = new node(val);
return;
}
else
current = current.right;
}
}
}
// поиск элемента
public bool search(double val)
{
if (root == null)
return false;
node current = root; // ссылка на текущий узел
while (true)
{
if (val < current.value)
{
if (current.left == null)
return false;
else
current = current.left;
}
else if (val > current.value)
{
if (current.right == null)
return false;
else
current = current.right;
}
else
return true;
}
}
// симметричный обход всего дерева
public void inorderwalk()
{
inorderwalk(root);
console.writeline();
}
// симметричный обход поддерева t
void inorderwalk(node t)
{
if (t ! = null)
{
inorderwalk(t.left);
console.write(t.value + " ");
inorderwalk(t.right);
}
}
}
class program
{
static void main(string[] args)
{
searchtree tree = new searchtree();
tree.add(4);
tree.add(2);
tree.add(0);
tree.add(3);
tree.add(6);
tree.add(5);
tree.add(9);
console.writeline("симметричный обход дерева: ");
tree.inorderwalk();
for (double x= 0; x < 10; x++)
{
if (tree.search(x))
console.writeline("элемент {0} содержится в дереве", x);
else
console.writeline("элемент {0} отсутствует в дереве", x);
}
console.readline();
}
}
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nastyakulikova5
05.11.2020 16:52

Исполнитель-объект,который выполняет алгоритм.

Есть 2 типа исполнителей:

Формальные и неформальные

Формальные не вносят никаких изменений в алгоритм.

Неформальные могут вносить изменения в алгоритм.

В роли формального исполнителя чаще всего выступает техническое устройство.

В роли неформального исполнителя чаще всего выступает человек.

За действия формального исполнителя отвечает управляющий им объект.

Неформальный исполнитель сам отвечает за свои действия,но не всегда может выполнять те же команды одинаково.

А формальный исполнитель может всегда одинаково выполнять одну и ту же команду.

Объяснение:

0,0(0 оценок)
Ответ:
NinjaKiller1337
30.06.2022 13:13
     По условию здесь шифр Цезаря +7. Это значит, что при  шифровании вместо каждой буквы писали другую, отдаленную от настоящей на 7 букв вперед по алфавиту.
    Значит при расшифровке надо сдвигаться, наоборот, на 7 букв назад, к началу алфавита. Здесь пронумерованный алфавит.

шифр      Ц    Т    Ж    Ф     Я    Л    Щ
№           24   20   8     22   33   13   27
№ - 7      17   13   1     15   26    6    20
буква       П    Л    А     Н    Ш     Е     Т

ответ: Планшет

Приложение: пронумерованный алфавит
А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
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота