Przesuwanie elementów w tablicy

Przesuwanie elementów w tablicy
N9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Witam!
Mam taki problem. Próbuje napisać własną listę opartą na tablicy. Chcę zaimplementować metodę delete, która będzie usuwać dany element - ma się to odbywać poprzez przesunięcie w "lewo" (od zadanego indeksu) o jeden wszystkich elementów tablicy. Nie wiem jednak jak to zrobić. Mógłby mi ktoś z tym pomóc?

HF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Przenoś w pętli każdy element o indeksie większym niż usuwany o jedno miejsce "w lewo". Zaczynaj od "lewej strony", aby nie nadpisywać danych.

gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

elementy:
1, 2, 3, 4, 5, 6, 7, 8, 9
po usunieciu 3-ciego elementu
1, 2, (4, 5, 6, 7, 8, 9) elementy w nawiasie zostaly przesuniete w lewo o 1 miejsce

Kopiuj
 
void usun(char* pierwszy, int usuwany, int rozmiar) //usuwany od 0 do rozmiar-1
{
     if(pierwszy == NULL)
      return;
     
     for(int przesuwany = usuwany + 1; przesuwany < rozmiar; przesuwany ++)
     {
          lista[przesuwany-1] = lista[przesuwany];
          lista[przesuwany] = NULL;
     }
}

W pętli for() przenosimy pokolei każdy element na miejsce poprzedniego.
1 2 3 4 5
usuwamy 2 i wygląda to tak.
1 3 4 5
1 3 4 5
1 3 4 5
1 3 4 5

Kopiuj

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.