Witam
Potrzebuje pilnie pomocy, nie mogę dokończyć zadania. Napisałem praktycznie całość kodu brakuje mi tylko usuwania pojedyńczego elementu z drzewa. Nie mam pojęcia jak ma to wyglądać więc piszę z pomocą do Was, oto co udało mi się zrobić, nie ukrywam że to dosyć pilne ;) Pozdrawiam
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class liść_drzewa
{
public double Wartość;
public liść_drzewa lewy;
public liść_drzewa prawy;
public liść_drzewa Korzeń;
public liść_drzewa(double x)
{
Wartość = x;
lewy = null;
prawy = null;
}
public void preorder()
{
Console.WriteLine(Wartość);
if (lewy != null) lewy.preorder();
if (prawy != null) prawy.preorder();
}
public void inorder()
{
if (lewy != null) lewy.inorder();
Console.WriteLine(Wartość);
if (prawy != null) prawy.inorder();
}
public void postorder()
{
if (lewy != null) lewy.postorder();
if (prawy != null) prawy.postorder();
Console.WriteLine(Wartość);
}
public void dopiszRBT(double p, double Max, Random Generator)
{
double pomoc;
double wart;
pomoc = Generator.NextDouble();
wart = Max * Generator.NextDouble();
if (pomoc <= p)
{
if (lewy != null) lewy.dopiszRBT(p, Max, Generator); else lewy = new liść_drzewa(wart);
}
else
{
if (prawy != null) prawy.dopiszRBT(p, Max, Generator); else prawy = new liść_drzewa(wart);
}
}
public bool czy_jest(double x)
{
bool wynik;
wynik = false;
if (x == Wartość) wynik = true;
else
{
if (lewy != null) wynik = lewy.czy_jest(x);
if (wynik == false)
if (prawy != null) wynik = prawy.czy_jest(x);
}
return wynik;
}
public void usuń_drzewo()
{
if (lewy != null) lewy.usuń_drzewo();
if (prawy != null) prawy.usuń_drzewo();
lewy = null;
prawy = null;
}
}
}