program point;
uses crt;

type
h = ^g;
g = record
          data : string[30];
          next : h;
    end;

var
a,b : h;
x : integer;
y : char;


begin

a := nil;
b := a;

repeat
clrscr;
write ('[A]dd, [V]iew, [Q]uit');
repeat
y := upcase(readkey);
until (y = 'A') or (y = 'V') or (y = 'Q');
clrscr;
writeln;
writeln;

case y of

'A' : begin
while b <> nil do b := b^.next;
new (b);
write ('Name : ');
readln (b^.data);
b^.next := nil;
b := a;
end;

'V' : begin
while b <> nil do begin
writeln ('Name : ',b^.data);
b := b^.next;
end;
y := readkey;
b := a;
end;

end;

until y = 'Q';

while b <> nil do begin
dispose(b);
b := b^.next;
end;

end.