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

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

Показать ответ
Ответ:
azatbaykov00
azatbaykov00
23.09.2020 18:09

ответ:1) Эти картинки могут рассказать о том что люди могут брать идеи для своих работ, например для получения навыков, или о том что люди всегда пользуются того что было сделано ранее.

2) Я у родителей, ведь если я сам не могу решить, я получу плохую оценку.

3) Крайне редко, если родителей не смогла мне .

4) Авторское право - это права автора чего либо на жалобу за плагиат его идеи.

Плагиат - это идея которая была украдена у другого человека и выставлена от имени вора идеи.

5) Если вы будете брать всё из интернета и выдавать за своё, вы можете нарушить авторское право, после чего с большой вероятностью последует наказание за плагиат.

Объяснение:

0,0(0 оценок)
Ответ:
favorit19971
favorit19971
20.01.2022 19:00
#include <iostream> #include <ctime>//Нужно для генерации n - значных чисел using namespace std;   int getRandVal(int n);//Функция генерирует случайное n-ое число //Функция вернёт массив цифр составляющих число val //переменная n будет содержать число цифр в массиве //флаг bGetArray определяет записывать ли разряды в //массив или лишь ограничиться подсчётом разрядов числа int * splitValue(int val, int &n, bool bGetArray); //Функция проверяет состоит ли число только из нечётных чисел bool (int val);   int main() {     int i;     int m;//Будет содержать число чисел для анализа     int n;//Будет содержать число разрядов для чисел     int sum;//Будет содержать сумму чисел     int cnt;//Будет содержать кол-во n-значных чисел     //состоящих только из нечётных значений     int *arr = NULL;//Указатель на массив с n-значн числами     while(true)     {         system("cls");         cout<<"Enter number values in array : ";cin>>m;         cout<<"Enter n digits in values     : ";cin>>n;         arr = new int[m];         cout<<"Generated array of values\n";         for(i = 0; i < m; i++)             cout<<(arr[i] = getRandVal(n))<<endl;         cout<<"Values in array with only odd numbers\n";         for(sum = (cnt = (i = 0)); i < m; i++)         {             if((arr[i]))             {                 cout<<arr[i]<<endl;                 sum = sum + arr[i];                 cnt = cnt + 1;             }         }         delete [] arr;         if(!cnt)             cout<<"array not contain values which consist"                 <<" only from no-odd numbers\n";         else         {             cout<<"sum of values which consist"                 <<" only from no-odd numbers is "                 <<sum<<endl;             //Разбиваем значение суммы на разряды             arr = splitValue(sum, n, true);             for(cnt = (i = 0); i < n; i++)             {                 if(!(arr[i]))                     cnt = cnt + 1;             }             cout<<"given sum contains from "<<cnt<<" odditive numbers\n";             delete [] arr;         }         system("pause");     }     return 0; }   int getRandVal(int n) {     int val = 0;     int nDigits = 0;     //Будем продолжать генерацию     //пока не сгенерируем случ     //n-значное число     while(nDigits != n)         splitValue((val = rand()%RAND_MAX), nDigits, false);     return val; }   int * splitValue(int val, int &n, bool bGetArray) {     int * arr = NULL;//Указатель на массив с разрядами числа val     if(val < 0)         val *= -1;//Знак числа нам не нужен     //Подсчитываем число разрядов в числе     int i, buf = val;     for(n = 0; 0 < buf; n++)         buf = buf / 10;     //Выделяем память под массив чисел     if(bGetArray)     {         arr = new int[n];         for(i = 0; 0 < val; i++)         {             //Записываем в массив цифры разрядов числа             arr[i] = val % 10;             val    = val / 10;         }     }     return arr; }   bool (int val) {     bool bRet = true;     int nDigits = 0;     int * array = splitValue(val,nDigits,true);     for(int i = 0; i < nDigits && bRet; i++)     {         if(array[i]%2 == 0)             bRet = false;     }     delete [] array;     return bRet; }
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота