/* Doppelt verkettete Liste Daniel Pischl */ #include #include #include #include typedef struct Liste { char sZeile[80]; struct Liste *pnachher, *pvorher; } LISTE, *LISTENZEIGER; void main() { int iNummer=0; struct Liste *pStamm, *pEnde, *pEingabe, *pHilf; clrscr(); pStamm=(LISTENZEIGER) malloc(sizeof(struct Liste)); pEingabe=pStamm; do { iNummer++; printf("%2i.te Zeile: ",iNummer); gets(pEingabe->sZeile); if (strcmp(pEingabe->sZeile,"")!=0) { pEingabe->pvorher=pEingabe->pnachher; pHilf=(LISTENZEIGER) malloc(sizeof(struct Liste)); pEingabe->pnachher=pHilf; strcpy(pHilf->sZeile,"+"); pEingabe=pHilf; } else { pEnde=(LISTENZEIGER) malloc(sizeof(struct Liste)); pEingabe->pnachher=pEnde; } } while (strcmp(pEingabe->sZeile,"")!=0); printf("\nbreak\n"); getch(); printf("Ausgabe von der Listen (Start bei 1) bis %i\n",iNummer-1); iNummer=1; pEingabe=pStamm; while (pEingabe->pnachher!=pEnde) { printf("%2i.te Zeile: %s\n",iNummer,pEingabe->sZeile); pEingabe=pEingabe->pnachher; iNummer++; } printf("\nbreak\n"); getch(); printf("Ausgabe von den Listen bis 1\n",iNummer-1); pEingabe=pEnde; while (pEingabe->pvorher!=NULL) { printf("%2i.te Zeile: %s\n",iNummer-1,pEingabe->sZeile); pEingabe=pEingabe->pvorher; iNummer--; } printf("%2i. Zeile: %s\n",iNummer-1,pEingabe->sZeile); getch(); }