2024. január 14., vasárnap

Csatolt lista létrehozására, rendezésére és törlésére C# (C Sharp) nyelven

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