Untitled
unknown
plain_text
2 years ago
3.8 kB
9
Indexable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Drzewo
{
public class Wierzcholek
{
private int Wartosc;
private Wierzcholek Lewy;
private Wierzcholek Prawy;
public Wierzcholek(int x)
{
Wartosc = x;
Lewy = null;
Prawy = null;
}//Koniec konstruktora
public void Dopisz(int x)
{
Random generator;
double losowa;
generator = new Random();
losowa = generator.Next();
if (losowa < 0.5) //idziemy do lewego
{
if (Lewy == null)
{
Lewy = new Wierzcholek(x);
}
else
{
Lewy.Dopisz(x);
}//end if
}
else //idziemy do prawego
{
if (Prawy == null)
{
Prawy = new Wierzcholek(x);
}
else
{
Prawy.Dopisz(x);
}//end if
}//end if
}//Koniec dopisywania
public void preOrder()
{
Console.Write(Wartosc + " ");
if (Lewy != null)
{
Console.Write("L"); //Po modyfikacji
Lewy.preOrder();
}
else
{
Console.Write("*L");
}//end if
if (Prawy != null)
{
Console.Write("P");
Prawy.preOrder();
}
else
{
Console.Write("*P");
}//end if
}//Koniec preorder
public void inOrder()
{
if (Lewy != null) Lewy.inOrder();
Console.Write(Wartosc + " ");
if (Prawy != null) Prawy.inOrder();
}//Koniec inorder
public void postOrder()
{
if (Lewy != null) Lewy.postOrder();
if (Prawy != null) Prawy.postOrder();
Console.Write(Wartosc + " ");
}//Koniec postOrder
public void Usun()
{
if (Lewy != null) Lewy.Usun();
if (Prawy != null) Prawy.Usun();
Lewy = null;
Prawy = null;
}//Koniec usuwania
//RBT = Random Binary Tree
static void Main(string[] args)
{
Wierzcholek korzen;
int N;
int i;
int max;
int liczba;
Random generator;
max = 101;
N = 15;
generator = new Random();
korzen = null;
for (i = 0; i < N; i++)
{
liczba = generator.Next(max);
if (korzen == null)
{
korzen = new Wierzcholek(liczba);
}
else
{
korzen.Dopisz(liczba);
}//end if
}//next i
Console.WriteLine("preOrder:");
korzen.preOrder();
Console.WriteLine();
Console.WriteLine("inOrder:");
korzen.inOrder();
Console.WriteLine();
Console.WriteLine("postOrder:");
korzen.postOrder();
Console.WriteLine();
Console.WriteLine("Usunięcie drzewa:");
korzen.Usun();
korzen.preOrder();
Console.WriteLine();
Console.ReadKey();
}//Koniec main
}
}//Koniec klasyEditor is loading...
Leave a Comment