Sortowanie na liśćie jednokierunkowej

0

Witam, mam mały problem z sortowaniem na liście. Napisałem klasy realizujące listę i wszystkie przypadki dodawania elementów, jednakże do listy nie chcą się dodawać elementy mniejsze od korzenia. Czy mógłby się ktoś przyjrzeć i podpowiedzieć co jest nie tak ??

Program:
namespace SortowanieNaLiście
{
class Program
{
static void Main(string[] args)
{
Random Generator;
int x,i=0 ;
ElementListy SortowanieNaLiście;
Generator = new Random();
x = Generator.Next(100);
SortowanieNaLiście = new ElementListy((double)x);


for (i = 0; i < 10000; i++)
{
x = Generator.Next(100);
SortowanieNaLiście.ZapiszKorzeń((double)x);
SortowanieNaLiście.PodmieńKorzeń((double)x);
SortowanieNaLiście.Dopisz((double)x);
}

SortowanieNaLiście.Wyświetl(false);
Console.ReadLine();
}
}
}

Klasy:

namespace SortowanieNaLiście
{
public class ElementListy
{
public double Wartość;
public ElementListy Następny;
public ElementListy NowyElement;
public ElementListy Korzeń;
public ElementListy Nowy;



//Konstruktor
public ElementListy(double x)
{
Wartość = x;
Następny = null;
NowyElement = null;
}//Koniec konstruktora
public void ZapiszKorzeń(double x,int i)
{
if(i==0)
Korzeń = new ElementListy(x);

}
public void PodmieńKorzeń(double x)
{
if (x < Korzeń.Wartość)
{
Nowy = new ElementListy(x);
Nowy.Następny = Korzeń;
Korzeń = Nowy;
Nowy = null;
}
}

//Metoda dopisująca do końca listy
public void Dopisz(double x)
{
if (this.Wartość < x)
{
if (this.Następny == null) Następny = new ElementListy(x);
else
{
if (Następny.Wartość < x) Następny.Dopisz(x);
else
{
NowyElement = new ElementListy(x);
NowyElement.Następny = this.Następny;
Następny = NowyElement;
NowyElement = null;
}//end if Następny.Wartość < x
}//end if this.Następny == null)
}//end if this.Wartość < x
if (this.Wartość == x)
{
NowyElement = new ElementListy(x);
NowyElement.Następny = this.Następny;
this.Następny = NowyElement;
NowyElement = null;
}
}



//Metoda wyświetlająca zawartość listy
public void Wyświetl(bool NastępnaLinia)
{
string Dodatek;

Dodatek = "";

if (NastępnaLinia == true) Dodatek = "\n";

Console.WriteLine(Wartość + Dodatek);

if (Następny != null) Następny.Wyświetl(NastępnaLinia);
}//Koniec metody wyświetlającej zawartość listy

}//Koniec klasy ElementListy

}
Z góry dziękuję za pomoc.

Szymod
New member

Posty: 1
Dołączył(a): Śr cze 12, 2013 8:07 pm
0

Koledzy pomóżcie :) nie mam pojęcia czemu mi to nie chce działać próbowałem już wszystkiego. Będę wdzięczny za każdą pomoc.

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