unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 =
class(TForm)
lbxAusgabe: TListBox;
btnErsteingabe: TButton;
btnHinzufuegen: TButton;
procedure btnErsteingabeClick(Sender: TObject);
procedure btnHinzufuegenClick(Sender: TObject);
end;
Pointertyp = ^Schuelertyp;
Schuelertyp =
record
Nachname, Vorname,
Name :
String;
Nach : Pointertyp;
end;
var
Form1: TForm1;
Kopf, Vor, Zeiger : Pointertyp;
Pos : Integer;
implementation
{$R *.DFM}
procedure Eingabe(
var Neu : Pointertyp);
begin
new(Neu);
Kopf^.Nachname := InputBox('
Nachname:','
Eingabe:','
');
Kopf^.Vorname := InputBox('
Vorname:','
Eingabe:','
');
end;
procedure TForm1.btnErsteingabeClick(Sender: TObject);
var Leer :
String;
I : Integer;
begin
Eingabe(Kopf);
Kopf^.Nach :=
nil;
Leer := '
,';
For I := 1
to (13 - length(Kopf^.Nachname))
do Leer := Leer + '
';
lbxAusgabe.Items.Add(Kopf^.Nachname + Leer + Kopf^.Vorname);
end;
procedure TForm1.btnHinzufuegenClick(Sender: TObject);
var Neu : Pointertyp;
procedure Suchen(Zeiger : Pointertyp;
var Vor : Pointertyp);
begin
while (Zeiger <>
nil)
and (Zeiger^.Nachname < Neu^.Nachname)
do
begin
Vor := Zeiger;
Zeiger := Vor^.Nach;
end;
end;
procedure Einfuegen(Vor : Pointertyp);
var Leer :
String;
I : Integer;
begin
if Kopf^.Nachname > Neu^.Nachname
then begin
Neu^.Nach := Kopf;
Kopf := Neu;
end
else begin
Neu^.Nach := Vor^.Nach;
Vor^.Nach := Neu;
end;
Leer := '
,';
For I := 1
to (13 - length(Neu^.Nachname))
do Leer := Leer + '
';
lbxAusgabe.Items.Add(Neu^.Nachname + Leer + Neu^.Vorname);
end;
begin
Eingabe(Neu);
Suchen(Kopf, Vor);
Einfuegen(Vor);
end;
end.