• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Implementacja listy jednokierunkowej w pętli

Mały hosting, OGROMNE możliwości
0 głosów
994 wizyt
pytanie zadane 8 maja 2020 w C i C++ przez Dyali56 Nowicjusz (150 p.)
Dzień dobry,

niedawno zacząłem swoją przygodę z językiem C i jestem ciekaw czy jest możliwość stworzenia listy jednokierunkowej w pętli.

Wiem, że chcę stworzyć np. 15 elementów listy, ale jak to zrobić iteracyjnie?

Szukałem przykładów w internecie, ale niestety poległem.

Z góry dziękuję za pomoc!

1 odpowiedź

0 głosów
odpowiedź 8 maja 2020 przez kalczur Gaduła (4,320 p.)
wybrane 8 maja 2020 przez Dyali56
 
Najlepsza

Potrzebujesz struktury listy: 
 

typedef struct List{
    int data;
    struct List* next;
}List;
typedef List* node;

Funkcji do dodawania elementu na przykład na koniec:
 

void listAddEnd(node *head, int y)
{
    node temp = malloc(sizeof(N));
    temp->data = y;
    temp->next = NULL;
    while(*head != NULL)  head = &((*head)->next);
    *head = temp;
}

Przy okazji przyda się funkcja wyświetlająca listę:
 

void listPrint(node head){
    if(head == NULL)
        printf("Lista jest pusta!\n");
    else
    {
        while (head != NULL){
            printf("%i", head->data);
            head = head->next;
            if (head != NULL) printf(" -> ");
        }
        printf("\n");
    }
}

Teraz możesz stworzyć listę i dodawać do niej elementy w pętli.
 

int main()
{
	node lista = NULL;
	int i;

	for (i = 0; i < 10; i++)
		listAddEnd(&lista, i);

	listPrint(lista);

	return 0;
}

 

komentarz 8 maja 2020 przez Dyali56 Nowicjusz (150 p.)
Jak wyglądałby przypadkowy iterator dla czegoś w rodzaju listy list?

Chodzi o to, że każdy element listy to byłby rodzic, a "podlista" to spis dzieci dla rodzica.

Wówczas struktura rodzica musiałaby zawierać head dla struktury dzieci, dobrze rozumiem?
komentarz 10 maja 2020 przez kalczur Gaduła (4,320 p.)

Podobne pytania

+2 głosów
2 odpowiedzi 509 wizyt
0 głosów
1 odpowiedź 257 wizyt
+1 głos
1 odpowiedź 295 wizyt

93,718 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,263 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...