Lista jednokierunkowa - jak zrobić okreslaną liczbę elementów?

Lista jednokierunkowa - jak zrobić okreslaną liczbę elementów?
Blue_Carpet
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 132
0

Witam,
Mam sobie liste taka liste jednokierunkowa:

Kopiuj
struct lista
{
    int liczba;
    struct lista *next;
};
typedef struct lista element;

oraz w main:

Kopiuj
element *PoczatekListy = NULL;

moje pytanie to czy mozna jakos z automatu ograniczyc ilosc elementow listy np.: do maksymalnie 10 lub poprzez funkcje? Nie bardzo wiem jak za to sie zabrac.
Wymyslilem takie cos:

Kopiuj
void init(element *PoczatekListy)
{
    int i = 0;
    element *Help = PoczatekListy, *Koniec;
    for(i=0; i<10; i++)
    {
        Help = Help->next;
    }
    Koniec = Help;
}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
5

Niepotrzebnie sobie komplikujesz życie bawiąc się w prealokację - zliczaj ile masz elementów podczas dodawania i nie pozwalaj dodawać więcej.

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
5

Btw, takie ograniczanie to zły pomysł.

Jeżeli chcesz mieć narzuconą wielkość, użyj jakiejś zwykłej tablicy.

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.