rendered paste body/* Doppelt verkettete Liste
Daniel Pischl
*/
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
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();
}