lightinside utworzono 6 lutego 2014 utworzono 6 lutego 2014 Chciałam napisać pseudokod który będzie usuwał ity element z tablicy jednokierunkowej, Czy dobrze uczyniłam? O to moja idea: Head przypisac do następnika x potem dopóki licznik nie bedzie sie równał i chciałam zamieniać wartości do x.key przypisywac x.next.key. Delete_i_piece(L,i) g<-0 x.next<-L.Head while g !=i x.key<-x.next.key x<-x.next g++ return 0
torreado komentarz 6 lutego 2014 komentarz 6 lutego 2014 Źle to masz - jak chcesz usunąć i-ty element to po prostu go opuszczasz na liście czyli i-1 elementy wskazuje na element i+1. Czyli masz coś takiego: i1 -> i2 -> i3 i chcesz usunąć i2 to będziesz miał: i1 -> i3 Ale musisz jeszcze sprawdzić czy element następny istnieje - bo może się okazać, że nie będziesz miał dowiązania do i3.
rafalluz komentarz 6 lutego 2014 komentarz 6 lutego 2014 Musisz uwzględnić sytuację, gdy i jest większe niż ilość elementów na liście. Gdy chcesz usunąć i-ty element z listy, musisz przepiąć nexta w elemencie (i-1)-szym, by wskazywał na element (i+1)-szy. Do tego dojdą jeszcze przypadki krańcowe (początek i koniec listy)
torreado komentarz 6 lutego 2014 komentarz 6 lutego 2014 Poczytaj sobie ten poradnik - masz tam opisane wszystkie sytuacje: http://jfiszbach.republika.pl/programowanie/cplusplus/files/dynam_lista_jednokier_usuwaj.html
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.