000
19.12.2005, 18:35 Uhr
~kodo
Gast
|
Hi Leute habe hier eine einfach verkettete Liste. Ordnet sie aber nicht ganz richtig. Hab ein feld mit 1, 1000, 100 sollte mir sie nach der größe ordnen also 1000, 100, 1 aber er gibt mir immer 100, 1000, 1 aus komme nicht auf meinen Fehler drauf. Brauche Lösung dringend. Danke im vorhinaus, Mfg. kodo
C++: |
#include <stdio.h> #include <conio.h> #include <stdlib.h>
typedef struct LISTELEMENT{ int data; LISTELEMENT *next; }ListElement;
int insertBeforeElement(int data, ListElement *index, ListElement **listB,ListElement **listE); int insertAfterElement(int data, ListElement *index, ListElement **listB,ListElement **listE); int dataOutput(ListElement *listB);
int main(void){
ListElement *lB=NULL, *lE=NULL, *le=NULL; int feld[3]={ 1, 1000, 100}, i=0;
for(i=0;i<3;i++){ le=lB; while(le!=NULL){ if(le->data<feld[i]){ break; } le=le->next; } if(le!=NULL){ insertBeforeElement(feld[i], le, &lB, &lE); } else{ insertAfterElement(feld[i], le, &lB, &lE); }
} dataOutput(lB);
return 0; }
int insertBeforeElement(int data, ListElement *index, ListElement **listB,ListElement **listE){ ListElement *le=NULL;
if((le=(ListElement *)malloc(sizeof(ListElement)))==NULL) { fprintf(stderr,"\n\nERROR: FEHLER BEIM SPEICHERRESERVIEREN\n\n"); return EXIT_FAILURE; } le->data=data; le->next=NULL;
if(*listB==NULL) //liste leer { *listB=le; *listE=le; return EXIT_SUCCESS; }
le->next=*listB; //normalfall *listB=le;
return EXIT_SUCCESS; }
int insertAfterElement(int data, ListElement *index, ListElement **listB,ListElement **listE){ ListElement *le=NULL;
if((le=(ListElement *)malloc(sizeof(ListElement)))==NULL) { fprintf(stderr,"\n\nERROR: FEHLER BEIM SPEICHERRESERVIEREN\n\n"); return EXIT_FAILURE; } le->data=data; le->next=NULL;
if(*listB==NULL) //liste leer { *listB=le; *listE=le; return EXIT_SUCCESS; }
index->next=le; *listE=le; return EXIT_SUCCESS; }
int dataOutput(ListElement *listB) { ListElement *le=NULL; int i=0;
le=listB;
while(le!=NULL) { printf("%d ", le->data); le=le->next; i++; }
return EXIT_SUCCESS; }
|
mod edit: benutze CPP Tags selber Dieser Post wurde am 19.12.2005 um 20:20 Uhr von Pablo editiert. |