Napisz klasę realizującą losowe drzewo binarne RBT.
Klasa powinna umożliwiać przeglądanie drzewa,
dopisywanie do niego losowych wartości (parametry N, p,
MAX), wyszukiwanie elementu oraz usuwanie drzewa.
KOD:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class liść_drzewa//Początek klasy
{
public double Wartość;
public liść_drzewa lewy;
public liść_drzewa prawy;
public liść_drzewa(double x)
{
Wartość = x;
lewy = null;
prawy = null;
}
public void preorder()//Pierwsza metoda
{
Console.WriteLine(Wartość);
if(lewy != null) lewy.preorder();
if(prawy != null) prawy.preorder();
}
public void inorder()//Druga metoda
{
if(lewy != null) lewy.inorder();
Console.WriteLine(Wartość);
if(prawy != null) prawy.inorder();
}
public void postorder()//trzecia metoda
{
if(lewy != null) lewy.postorder();
if(prawy != null) prawy.postorder();
Console.WriteLine(Wartość);
}
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 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);
}
}
}//koniec klasy
class Program
{
static void Main(string[] args)
{
public liść_drzewa Korzeń;
Korzeń = null;
//tworzenie korzenia
//operacje na drzewie
Korzeń.usuń_drzewo();
Korzeń = null;
}
}
napisałem klasy przy pomocy nauczyciela a teraz proszę o pomoc w postaci podpowiedzi jak napisać prawidłowo odwołania bo z tym zawsze mam największe problemy.
Z góry dziękuję za sugestie.