0
我想創建升序排列的列表:創建升序排列的列表
program ejListas;
type
tLista = ^lista
; lista = record
valor : Integer
; sgte : tLista
end
;
procedure insertarOrdenado (var lista: tLista; dato: Integer);
var cursor
, listaAux
:tLista
;
begin
if (lista <> nil) then
begin
new (listaAux);
listaAux^.valor := dato;
cursor := lista;
while (cursor^.sgte <> nil) and (cursor^.valor < dato) do
cursor := cursor^.sgte;
listaAux^.sgte := cursor^.sgte;
cursor^.sgte := listaAux;
end
else
begin
new (lista);
lista^.valor := dato;
lista^.sgte := nil;
end;
end;
procedure imprimirLista (lista: tLista);
var cursor
:tLista
;
begin
cursor := lista;
while (cursor <> nil) do
begin
writeln (cursor^.valor);
cursor := cursor^.sgte;
end;
end;
var vLista :tLista;
dato:Integer;
begin
read (dato);
while (dato <> -1) do
begin
insertarOrdenado (vLista, dato);
read (dato);
end;
imprimirLista (vLista);
end.
所以,當我運行程序,插入的數字是:
1 - 5 - 58 - 95 - 3 - 0
預期的結果是:
0 - 1 - 3 - 5 - 58 - 95
但是,當程序寫入列表:
1 - 0 - 5 - 3 - 58 - 95
那麼,這裏有什麼問題?