(Бинарное дерево в данный код добавить удаление узлов дерева
using System;
class Tree
{
private string value;
private int count;
private Tree left;
private Tree right;
public int Count { get => count; set => count = value; }
public void Insert(string value)
{
if (this.value == null)
this.value = value;
else
{
if (this.value.CompareTo(value) == 1)
{
if (left == null)
this.left = new Tree();
left.Insert(value);
}
else if (this.value.CompareTo(value) == -1)
{
if (right == null)
this.right = new Tree();
right.Insert(value);
}
else
throw new Exception("Узел уже существует");
}
this.Count = Recount(this);
}
public Tree Search(string value)
{
if (this.value == value)
return this;
else if (this.value.CompareTo(value) == 1)
{
if (left != null)
return this.left.Search(value);
else
throw new Exception("Искомого узла в дереве нет");
}
else
{
if (right != null)
return this.right.Search(value);
else
throw new Exception("Искомого узла в дереве нет");
}
}
public string Display(Tree t)
{
string result = "";
if (t.left != null)
result += Display(t.left);
result += t.value + " ";
if (t.right != null)
result += Display(t.right);
return result;
}
private int Recount(Tree t)
{
int count = 0;
if (t.left != null)
count += Recount(t.left);
count++;
if (t.right != null)
count += Recount(t.right);
return count;
}
public void Clear()
{
this.value = null;
this.left = null;
this.right = null;
}
public bool IsEmpty()
{
if (this.value == null)
return true;
else
return false;
}
class Program
{
static void Main(string[] args)
{
if (args is null)
{
throw new ArgumentNullException(nameof(args));
}
Tree t = new Tree();
t.Insert("персик");
t.Insert("черника");
t.Insert("мандарин");
t.Insert("груша");
t.Insert("яблоко");
t.Insert("клубника");
Console.WriteLine(t.Display(t));
Tree s = t.Search("мандарин");
Console.WriteLine(s.Display(s));
Console.Read();
}
}
public void Remove(string value)
{
Tree t = Search(value);
string[] str1 = Display(t).TrimEnd().Split(' ');
string[] str2 = new string[str1.Length - 1];
int i = 0;
foreach (string s in str1)
{
if (s != value)
str2[i++] = s;
}
t.Clear();
foreach (string s in str2)
t.Insert(s);
this.Count = Recount(this);
}
}
ответ: Спутник притягивается Землей силой 568,85 Ньютона
Объяснение: Дано: Масса Земли M = 5,9726*10^24 кг.
Масса спутника m = 100 кг.
Радиус Земли r = 6371 км = 6371000 м.
Расстояние, на котором находится спутник h=2000 км =2000000 м.
Силу гравитационного взаимодействия между телами можно найти по формуле F = G*M*m/R². Здесь G - гравитационная постоянная; R - расстояние между центрами масс тел. В нашем случае R = r + h = 6371000 + 2000000 = 8371000 м. Таким образом, F = 6,67408*10^-11*5,9726*10^24*100/8371000² ≈ 568,85 Н
ответ: Ускорение свободного падения на Нептуне ≈ 11,1 м/с²
Объяснение: Дано: Масса Земли Мз = 1
Масса Нептуна Мн = 17,2Мз
Радиус Земли Rз = 1
Радиус Нептуна Rн = 3,9Rз
Ускорение свободного падения на поверхности Земли gз = 9,81 м/с²
В общем случае ускорение свободного падения (g) на поверхности какого-либо небесного тела определяется по формуле g= G*M/R². Здесь G - гравитационная постоянная; M - масса тела; R - радиус тела. Ускорение свободного падения на поверхности Земли gз = G*Mз/Rз². Ускорение свободного падения на поверхности Нептуна gн = G*Mн/Rн² = G*17,2Мз/(3,9Rз)². Найдем отношение этих ускорений. gн/gз = G*17,2Мз*Rз²/G*Mз*(3,9Rз)² = 17,2/3,9²= 1,13 раза. Во столько раз ускорение свободного падения на Нептуне больше земного. Таким образом, gн = 9,81 * 1,13 ≈11,1 м/с²