x-kom hosting

[ALGO] Tablica jednokierunkowa usunięcie itego elementu

lightinside
utworzono
utworzono

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
komentarz

Ź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
komentarz

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)

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.