Przesuwanie elementów w tablicy

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?

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.

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

 
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

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