Kurs:Algorithmen und Datenstrukturen/Vorlesung/Listen




ListeBearbeiten

Eine Liste ist entweder die leere Liste oder ein Term gefolgt von einer Liste.

Definition in PrologBearbeiten

list([]).
list([X|Y]) :- list(Y). 

Der |-Operator trennt den Kopf (Head=erstes Element)einer Liste vom Rumpf (Tail=Restliste) ab

BeispieleBearbeiten

  • Liste von Zahlen:
[1|[2|[3]]] = [1,2,3]
  • Liste von beliebigen Termen:
[male(bob), female(anna),male(carl)]

ListenmanipulationBearbeiten

  • Aneinanderreihung:
append(X,Y,Z): X ist die Liste, die entsteht, wenn Z an Y angehängt wird
append(X,X,[]).
append([Y|X], [Y|Z],L) :- append(X,Z,L). 
  • Invertierung:
invert(X,Y): X ist die Invertierung von Y
invert([],[]).
invert([X|Y],L) :- invert(Y,Z), append(L,Z,[X]).

LiteraturBearbeiten

Da die Vorlesungsinhalte auf dem Buch Algorithmen und Datenstrukturen: Eine Einführung mit Java von Gunter Saake und Kai-Uwe Sattler aufbauen, empfiehlt sich dieses Buch um das hier vorgestellte Wissen zu vertiefen. Die auf dieser Seite behandelten Inhalte sind in Kapitel 3.4.1 zu finden.