Dodanie elementu do listy dwukierunkowej uporzadkowanej malejąco

0

Witam,
Czy mógłby ktoś pomoc mi z kodem do procedury ? :

DodajDoPosortowanejDwukier(Lista:Tlista; wartosc:integer);
var nowy:TLista;
begin
new(nowy);
nowy.poprzedni:=nil;
nowy.nastepny:=nil;
nowy.wartosc:=wartosc;
if lista=nil then lista:=nowy else
if lista ^ .wartosc<nowy ^ .wartosc then
begin
nowy ^ .nastepny:=lista;
lista ^ .poprzedni:=nowy;
end
else
while(lista ^ .nastepny<>nil) and (nowy ^ .wartosc>lista ^ .nastepny ^ .wartosc) do
lista:=lista ^ .nastepny;
nowy^.nastepny:=lista ^ .nastepny;
nowy^.poprzedni:=lista;
lista^.nastepny:=nowy;


end;
end.

;

end;
end.

 

element dodaje sie w zlym miejscu, nie moge złapać ..
2

Jak sformatujesz kod to może ktoś CI pomoże...

0

ze jak sformatuje?

2
procedure DodajDoPosortowanejDwukier(var Lista:Tlista;wartosc:Integer);
var poprzedni,nastepny,nowy:TLista;
begin
  poprzedni:=nil;
  nastepny:=Lista;
  while (nastepny<>nil)and(nastepny^.wartosc>wartosc) do
  begin
    poprzedni:=nastepny;
    nastepny:=nastepny^.nastepny;
  end;
  new(nowy);
  nowy.wartosc:=wartosc;
  nowy.poprzedni:=poprzedni;
  nowy.nastepny:=nastepny;
  if nastepny<>nil then nastepny^.poprzedni:=nowy;
  if poprzedni<>nil then poprzedni^.nastepny:=nowy else Lista:=nowy;
end;
0

niestety nie pomógł mi Pana kod, po wywolaniu owej procedury np : mam liste 2,8,44,16 , nagle zniknela mi liczba 2 a wstawilo zupelnie inna lecz i tak w nieuporzadkowanej kolejnosci lub zamyka mi kompilacje

0

przepraszam bardzo,wszystko w jak najlepszym porzadku, dziekuje !

1 użytkowników online, w tym zalogowanych: 0, gości: 1