[Pascal] Łączenie dwóch list jednokierunkowych

Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

[Pascal] Łączenie dwóch list jednokierunkowych

Post autor: Humanista123 »

Witajcie. Jak napisać procedurę w Pascalu, która łączy dwie listy w jedną? Bez sortowania. Czy coś takiego jest dobrze?

Kod: Zaznacz cały

procedure polacz (p,n:lista);

begin
p:=head;
while p<>nil then
    begin
    p:=p^.next;
    end;
n:=head;
p^.next:=head;
end.
Uprzejmie proszę o poprawienie tego kodu, albo napisanie innego. Byłbym wdzięczny
Ostatnio zmieniony 17 sie 2017, o 14:07 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

[Pascal] Łączenie dwóch list jednokierunkowych

Post autor: bartek118 »

Nie napisałeś nic, jak wygląda struktura lista; co ma oznaczać np. p:=head;?

Idea powinna być taka - na końcu pierwszej listy (ostatni element), ustawiam wskaźnik na początek drugiej.
Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

[Pascal] Łączenie dwóch list jednokierunkowych

Post autor: Humanista123 »

Kod: Zaznacz cały

type lista=^element;
element=record
next :lista;
end;
p:=head, ma oznaczać, że odwołuję się do pierwszego elementu listy p.
Taka jest moja idea, ale mam problemy z przełożeniem tego na język Pascal.
Czy jest dobrze?
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

Re: [Pascal] Łączenie dwóch list jednokierunkowych

Post autor: bartek118 »

Z tego, co widzę, Twoja lista nie przechowuje żadnych informacji?

Parametry p i n, które przekazujesz zawierają co? Wskaźnik na pierwszy element listy?
Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

[Pascal] Łączenie dwóch list jednokierunkowych

Post autor: Humanista123 »

Tak, to miał być wskaźnik.
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

Re: [Pascal] Łączenie dwóch list jednokierunkowych

Post autor: bartek118 »

W takim razie po usunięciu linijek n:=head i p:=head powinno działać.
Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

Re: [Pascal] Łączenie dwóch list jednokierunkowych

Post autor: Humanista123 »

Dziękuję bardzo
ODPOWIEDZ