0
這是一些代碼。我是新來的pascal鏈接列表,並在例子中做了所有事情。但是我得到無限循環.. 代碼: 從txt文件以數據 `爲什麼即時通訊使用pascal鏈表進行無限循環?
procedure SukurtiSarasa(var pradzia, pabaiga :sarasas; var sukurtas: boolean);
var sk, x: integer;
g: sarasas;
duom : text;
s : string;
begin
sk:=0;
pradzia := nil;
pabaiga := nil;
writeln('Nurodykite faila is kurio uzkrausite sarasa.');
readln;
readln(s); // trash
assign(duom, s);
reset(duom);
while not eof(duom) do
begin
new(g);
while not eoln(duom) do
begin
read(duom, g^.nr); read(duom, g^.stotPav); readln(duom, g^.kelSk);
g^.rodykle := nil;
if pradzia = nil then // Sukuriam pirmaji elementa.
pradzia := g
else // Kitus elementus jungiam paskui pirmaji.
pabaiga^.rodykle := g;
pabaiga := g;
inc(sk);
end;
end;
clrscr;
writeln('Sarasas sekmingai uzkrautas');
// pasizymime, kad jau turime sukurta sarasa
sukurtas:= true;
close(duom);
end;
查看數據:
procedure AtspausdintiSarasa(pradzia:sarasas);
begin
if pradzia = nil then
Writeln('Sarasas neuzkrautas')
else
begin
writeln('Autobuso Nr Stoteles pavadinimas Keleiviu skaicius');
while pradzia <> nil do
begin
writeln(pradzia^.nr:15,' ',pradzia^.stotPav:15,' ',pradzia^.kelSk);
pradzia := pradzia^.rodykle;
end;
end;
end;
主營:
type sarasas = ^elem;
elem = record
nr, kelSk: integer;
stotPav: string[20];
rodykle: sarasas;
end;
var ....
pradzia, pabaiga: sarasas;
sukurtas: boolean;
begin
....
sukurtas:= false;
pradzia := nil;
pabaiga := nil;
....
看來,這應該工作然而無限循環發生。