Oktatás * Programozás 2 * Szkriptnyelvek * levelezősök Félévek Linkek * kalendárium |
C /
beszúrás a lista végére #2
Használunk egy vége mutatót is, ami mindig a lista utolsó elemére mutat. A bővítés így könnyen megoldható. #include <stdio.h> #include <stdlib.h> typedef struct listaelem { int adat; struct listaelem *kov; } LISTAELEM; LISTAELEM *fej = NULL; LISTAELEM *vege = NULL; /* ************************************* */ void vegere_beszur(int szam) { LISTAELEM *uj = (LISTAELEM *)malloc(sizeof(LISTAELEM)); uj->adat = szam; uj->kov = NULL; if (fej == NULL) { fej = uj; vege = uj; } else { vege->kov = uj; vege = uj; } } void bejar(LISTAELEM *fej) { LISTAELEM *akt = fej; while (akt != NULL) { printf("%d, ", akt->adat); akt = akt->kov; } printf("\n"); } int main() { int tomb[] = {1, 8, 5, 9, 2, 3, 4, 9}; int meret = sizeof(tomb) / sizeof(int); int i; /* tömb elemei */ printf("beszúrandó elemek: "); for (i = 0; i < meret; ++i) { printf("%d ", tomb[i]); } printf("\n"); puts(""); /* elemek beszúrása a lista végére */ for (i = 0; i < meret; ++i) { vegere_beszur(tomb[i]); } /* a listát a végén bővítettük, így az elemek sorrendje megmaradt */ printf("a lista elemei: "); bejar(fej); return 0; } A fenti program a köv. kimenetet produkálja: beszúrandó elemek: 1 8 5 9 2 3 4 9 a lista elemei: 1, 8, 5, 9, 2, 3, 4, 9, |
Blogjaim, hobbi projektjeim * The Ubuntu Incident [ edit ] |