Csatolt lista létrehozására, rendezésére és törlésére C# (C Sharp) nyelven:
using System;
public class CsomoPont
{
public int Adat { get; set; }
public CsomoPont Kovetkezo { get; set; }
public CsomoPont(int adat)
{
Adat = adat;
Kovetkezo = null;
}
}
public class CsatoltLista
{
public CsomoPont Fej { get; set; }
public CsatoltLista()
{
Fej = null;
}
public void KiirCsatoltListat()
{
CsomoPont jelenlegi = Fej;
while (jelenlegi != null)
{
Console.Write($"{jelenlegi.Adat} ");
jelenlegi = jelenlegi.Kovetkezo;
}
Console.WriteLine();
}
public void HozzaadCsomopont(int adat)
{
CsomoPont ujCsomoPont = new CsomoPont(adat);
if (Fej == null)
{
Fej = ujCsomoPont;
}
else
{
CsomoPont jelenlegi = Fej;
while (jelenlegi.Kovetkezo != null)
{
jelenlegi = jelenlegi.Kovetkezo;
}
jelenlegi.Kovetkezo = ujCsomoPont;
}
}
public void RendezCsatoltListat()
{
if (Fej == null || Fej.Kovetkezo == null)
{
return;
}
CsomoPont jelenlegi = Fej;
CsomoPont elozo = null;
while (jelenlegi != null && jelenlegi.Kovetkezo != null)
{
if (jelenlegi.Adat > jelenlegi.Kovetkezo.Adat)
{
if (elozo == null)
{
// Az első elemet cseréljük
CsomoPont kovetkezo = jelenlegi.Kovetkezo;
jelenlegi.Kovetkezo = kovetkezo.Kovetkezo;
kovetkezo.Kovetkezo = jelenlegi;
Fej = kovetkezo;
}
else
{
// Köztes elemek cseréje
CsomoPont kovetkezo = jelenlegi.Kovetkezo;
elozo.Kovetkezo = kovetkezo;
jelenlegi.Kovetkezo = kovetkezo.Kovetkezo;
kovetkezo.Kovetkezo = jelenlegi;
}
jelenlegi = Fej;
elozo = null;
}
else
{
elozo = jelenlegi;
jelenlegi = jelenlegi.Kovetkezo;
}
}
}
public void TorolCsomopontot(int celAdat)
{
while (Fej != null && Fej.Adat == celAdat)
{
Fej = Fej.Kovetkezo;
}
CsomoPont jelenlegi = Fej;
CsomoPont elozo = null;
while (jelenlegi != null)
{
if (jelenlegi.Adat == celAdat)
{
elozo.Kovetkezo = jelenlegi.Kovetkezo;
}
else
{
elozo = jelenlegi;
}
jelenlegi = jelenlegi.Kovetkezo;
}
}
}
class Program
{
static void Main()
{
CsatoltLista csatoltLista = new CsatoltLista();
csatoltLista.HozzaadCsomopont(4);
csatoltLista.HozzaadCsomopont(2);
csatoltLista.HozzaadCsomopont(1);
csatoltLista.HozzaadCsomopont(3);
Console.WriteLine("Eredeti lista:");
csatoltLista.KiirCsatoltListat();
csatoltLista.RendezCsatoltListat();
Console.WriteLine("Rendezett lista:");
csatoltLista.KiirCsatoltListat();
int torlendoAdat = 2;
csatoltLista.TorolCsomopontot(torlendoAdat);
Console.WriteLine($"A(z) {torlendoAdat} értékű csomópontot töröltük:");
csatoltLista.KiirCsatoltListat();
}
}
Létrehoztam egy `CsomoPont!
Nincsenek megjegyzések:
Megjegyzés küldése