Drzewo RBT

0

Witam może ktoś mi pomóc jak w najszybszy i najlepszy i najprostszy sposób można wyświetlić ten kod drzewa ?

using System;
using System.Collections.Generic;
using System.Text;
 
namespace algorytmy_zjazd7{
    public class main
    {
        public static void Main()
        {
           

       
        
        }
        class Program
        {
            public class lisc_drzewa
            {   public double Wartosc;
                public lisc_drzewa lewy;
                public lisc_drzewa prawy;
                public lisc_drzewa(double x)
                {                   
                    Wartosc = x;
                    lewy = null;
                    prawy = null;
                  
                }

                public void preorder()                {
                    Console.WriteLine(Wartosc);
                    if (lewy != null) lewy.preorder();
                    if (prawy != null) prawy.preorder();
                    Console.ReadLine();                }
 
                public void inorder()
                {
                    if (lewy != null) lewy.inorder();Console.WriteLine(Wartosc);
                    if (prawy != null) prawy.inorder();
                    Console.ReadLine();
                }
                 public void postorder()
                {
                    if (lewy != null) lewy.postorder();
                    if (prawy != null) prawy.postorder();
                    Console.WriteLine(Wartosc);               
                }
 
                //METODA WYSZUKUJE WARTOŚĆ W DRZEWIE
                public bool czy_jest(double x)
                {                   

                    bool wynik;
                    wynik = false;
                    if (x == Wartosc) wynik = true;
                    else
                    {                       
                     if (lewy != null) wynik = lewy.czy_jest(x);
                        if (wynik == false)
                            if (prawy != null) wynik = prawy.czy_jest(x);
                    }
                    return wynik;                }
 
                //METODA USUWA DRZEWO Z PAMIĘCI
                public void usun_drzewo()
                {                  
                    if (lewy != null) lewy.usun_drzewo();
                    if (prawy != null) prawy.usun_drzewo();
                    lewy = null;
                    prawy = null;
                }                    

                    //WYWOŁANIE METODY USUWAJĄCEJ DRZEWO
                //    private lisc_drzewa Korzen;
                //    Korzen = null;
                //    //Tworzenie korzenia
                //    //Operacja na drzewie                //    Korzen.usus_drzewo();
                //    Korzen = null;
 
                //DOPISYWANIE DO DRZEWA
                public void dopiszRBT(double p, double Max)                {
                    Random Generator;
                    double pomoc;
                    double wart;
                    Generator = new Random();                    pomoc = Generator.NextDouble();
                    wart = Max * Generator.NextDouble();
                    if (pomoc <= p)
                    {
                        if (lewy != null) lewy.dopiszRBT(p, Max); else lewy = new lisc_drzewa(wart);                    }
                    else
                    {
                        if (prawy != null) prawy.dopiszRBT(p, Max); else prawy = new lisc_drzewa(wart);
                    }                    Console.ReadKey();
                }
            }
        }
    }
          
    
    }

0

żeby wyświetlić to drzewo, musisz go najpierw stworzyć. np w ten sposób:

lisc_drzewa root = new lisc_drzewa(10);
lisc_drzewa lisc1 = new lisc_drzewa(8);
root.lewy = lisc1;
lisc_drzewa lisc2 = new lisc_drzewa(7);
root.prawy = lisc2;
lisc_drzewa lisc3 = new lisc_drzewa(4);
lisc1.prawy = lisc3;
lisc_drzewa lisc4 = new lisc_drzewa(3);
lisc1.lewy = lisc4;

a potem wyswietlasz jedną z metod klasy lisc_drzewa (inorder/postorder/preorder), wywołując ją na korzeniu (root). Te metody różnią się tylko kolejnością wyświetlania elementów drzewa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1