Egy függvény Javaban, amely végigiterál a csatolt listán, és kiírja az összes csomópont értékét:
class CsomoPont {
int adat;
CsomoPont kovetkezo;
public CsomoPont(int adat) {
this.adat = adat;
this.kovetkezo = null;
}
}
public class CsatoltListaPelda {
public static void kiirCsatoltListat(CsomoPont fej) {
CsomoPont jelenlegi = fej;
while (jelenlegi != null) {
System.out.print(jelenlegi.adat + " ");
jelenlegi = jelenlegi.kovetkezo;
}
System.out.println();
}
public static void main(String[] args) {
// Példa csatolt lista létrehozása
CsomoPont fej = new CsomoPont(1);
fej.kovetkezo = new CsomoPont(2);
fej.kovetkezo.kovetkezo = new CsomoPont(3);
fej.kovetkezo.kovetkezo.kovetkezo = new CsomoPont(4);
// Csatolt lista kiírása
kiirCsatoltListat(fej);
}
}
CsomoPont osztályt definiálása, majd létrehoz egy csatolt listát, és kiírja annak elemeit a kiirCsatoltListat függvénnyel.
Így kell rendezni, megtalálni és törölni a csomópontokat:
import java.util.*;
public class CsatoltListaPelda {
// ... (Előző rész)
public static CsomoPont rendezCsatoltListat(CsomoPont fej) {
// CsomoPont-ok átrendezése
List<Integer> adatok = new ArrayList<>();
CsomoPont jelenlegi = fej;
while (jelenlegi != null) {
adatok.add(jelenlegi.adat);
jelenlegi = jelenlegi.kovetkezo;
}
Collections.sort(adatok);
// Rendezett lista létrehozása
CsomoPont rendezettFej = new CsomoPont(adatok.get(0));
CsomoPont akt = rendezettFej;
for (int i = 1; i < adatok.size(); i++) {
akt.kovetkezo = new CsomoPont(adatok.get(i));
akt = akt.kovetkezo;
}
return rendezettFej;
}
public static CsomoPont torolCsomopontot(CsomoPont fej, int celAdat) {
CsomoPont jelenlegi = fej;
CsomoPont elozo = null;
while (jelenlegi != null && jelenlegi.adat != celAdat) {
elozo = jelenlegi;
jelenlegi = jelenlegi.kovetkezo;
}
if (jelenlegi == null) {
System.out.println("A csomópont nem található.");
return fej;
}
if (elozo != null) {
elozo.kovetkezo = jelenlegi.kovetkezo;
} else {
fej = jelenlegi.kovetkezo;
}
return fej;
}
public static void main(String[] args) {
// Példa csatolt lista létrehozása
CsomoPont fej = new CsomoPont(4);
fej.kovetkezo = new CsomoPont(2);
fej.kovetkezo.kovetkezo = new CsomoPont(1);
fej.kovetkezo.kovetkezo.kovetkezo = new CsomoPont(3);
// Csatolt lista kiírása
kiirCsatoltListat(fej);
// Csatolt lista rendezése
CsomoPont rendezettFej = rendezCsatoltListat(fej);
System.out.println("Rendezett lista:");
kiirCsatoltListat(rendezettFej);
// Csomópont törlése
int torlendoAdat = 2;
fej = torolCsomopontot(fej, torlendoAdat);
System.out.println("A(z) " + torlendoAdat + " értékű csomópontot töröltük:");
kiirCsatoltListat(fej);
}
}
Létrehoztunk egy rendezCsatoltListat függvényt, ami a csatolt lista elemeit rendezve visszaadja egy új csatolt lista fejét. Továbbá, a torolCsomopontot függvény segítségével megvalósítottam a csomópont törlését a megadott érték alapján.
Nincsenek megjegyzések:
Megjegyzés küldése