Procedura wstawiania elementu do listy przed wybranym elementem

0

Dobry, według strony http://eduinf.waw.pl/inf/alg/001_search/0086.php#P7 sekcja Algorytm dołączania nowego elementu przed wybranym elementem listy jednokierunkowej

procedure l_insert_before(var head : PslistEl; e : PslistEl; v : char);
var
  p : PslistEl;
begin
  p := head;
  if p = e then l_push_front(head,v)
  else
  begin
    while p^.next <> e do p := p^.next;
    new(p^.next);
    p^.next^.next := e;
    p^.next^.data := v;
  end;
end; 

Mianowicie jak wywołuję procedurę l_insert_before(moja_lista, ???, 'A');

To co wpisać w miejsce pytajników aby A zostało wstawione przed elementem na liście B? Parametrem jest wskaźnik?

0

W miejsce ??? masz wstawić element na liście B przed którym chcesz wstawić A

0

To mi nie pomaga, bo materiał do nauki mam tylko, co wpisać jako szukany element kolego. Do obiektówki jeszcze daleka droga więc klasy, destruktory odpadajo.

2

@zimny Kot - żeby móc użyć funkcji l_insert_before, najpierw trzeba odszukać węzeł, przed który będzie można wstawić nowy; Dlatego też potrzebujesz funkcji, która znajdzie węzeł np. według zadanego indeksu i zwróci wskaźnik tego węzła - jego potem możesz podać w parametrze e;

PS: Jeśli kod funkcji l_insert_before przekleiłeś z tamtego artykułu (nie chce mi się sprawdzać) to powinieneś go wyrzucić i napisać go sam; Wstydzić się powinien ten, kto uczy innych pisać kod w Pascalu, używając konwencji nazewnictwa stosowanej w zupełnie obcych językach; A już na pewno za jednoliterowe identyfikatory...

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