В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
OlyaMonokova
OlyaMonokova
28.09.2021 16:42 •  Информатика

программа на 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();
}
}
}

Показать ответ
Ответ:
plesovskih
plesovskih
28.11.2021 03:41

Звонит незнакомец, извиняется и говорит, что случайно указал ваш номер телефона в какой-то анкете. Он просит продиктовать ему код, который по ошибке пришел вам в СМС. Это точно мошенник. Немедленно бросайте трубку.

Мошенники могут притворяться, что они ваши знакомые, которые якобы хотят скинуть деньги вам на карту. Но для перевода им нужны номер карты, срок ее действия и CVC/CVV-код. Это тоже обман. Для того, чтобы перечислить деньги, достаточно номера карты. Никакие другие данные — срок действия, имя владельца или код — не требуются.

0,0(0 оценок)
Ответ:
05032009
05032009
12.02.2022 05:21

#include <iostream>

using namespace std;

int main()

{

   int y, x;

   cin >> x >> y;

   int a[8][8];

   for (int i = 0; i < 8; ++i)

       for (int j = 0; j < 8; ++j)

         a[i][j] =  0;

   y--;

   x--;

   

   int px = x, py = y;

   while (px >= 0 && py >= 0){

       a[px][py] = 2;

       px--;

       py--;

     

   }

   

   px = x, py = y;

   while (px >= 0 && py < 8){

       a[px][py] = 2;

       px--;

       py++;

   }

   

   px = x, py = y;

   while (px < 8 && py < 8){

       a[px][py] = 2;

       px++;

       py++;

   }

   

   px = x, py = y;

   while (px < 8 && py >= 0){

       a[px][py] = 2;

       px++;

       py--;

   }

   

   px = 0;

   while (px < 8){

       a[px][y] = 2;

       px++;

   }

   

   py = 0;

   while (py < 8){

       a[x][py] = 2;

       py++;

   }

   

   a[x][y] = 1;

   for (int i = 0; i < 8; ++i){

       for (int j = 0; j < 8; ++j){

           if(a[i][j] == 0) cout << "." << " ";

           else if(a[i][j] == 1) cout << "Q" << " ";

           else cout << "*" << " ";

       }

       cout << endl;

   }

   return 0;

}

Объяснение:

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

P. s. Если , дайте лучший ответ и жмякните на " " . Это мотивирует давать ответы дальше.

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