000
23.11.2003, 19:21 Uhr
audaxx
|
Hi !! In dem letzten Teil meiner Ausbildung beschäftigen wir uns mit einfach und auch doppelt verketteten Listen in C, mit denen allle so ihre Probs haben (mich eingeschlossen)..Wir haben zunächst ein Menue gebastelt, welches sich Daten aus einer Textdatei zieht, wenn man über die M-Punkte läuft. Dieses basierte auf einem struct. Das ging noch einigermaßen (habs hinbekommen ) Jedoch erweiterten wir jetzt das ganze um folgende Liste nach dem LIFO Prinzip
C++: |
#include <stdio.h> #include <conio.h> #include <process.h> #include <stdlib.h>
struct Satz { char Name[16]; char Symbol [3]; float Dichte; float Cellsius; int Xkor; int Ykor;
struct Satz *next;
};
void dummy(); int lesen (FILE*,struct Satz*); void ausgeben (struct Satz*); void einfuegen(struct Satz **Anker,struct Satz Daten);
void main ()
{
int i;
struct Satz Daten,*Anker=NULL; FILE *fp;
if ((fp = fopen ("daten.txt","r"))==NULL) { fprintf(stderr,"Misstake during opening the file \n "); exit(666); }
clrscr(); while (lesen(fp,&Daten)!=EOF) einfuegen(&Anker,Daten); ausgeben(Anker);
}
void dummy() { float x; scanf("%f",&x); }
int lesen (FILE *pf,struct Satz*pD) { if (fscanf(pf,"%s",pD -> Name)==EOF) return EOF;
fscanf(pf,"%s", pD -> Symbol); fscanf(pf,"%f",&pD -> Dichte); fscanf(pf,"%f",&pD -> Cellsius); fscanf(pf,"%d",&pD -> Xkor); fscanf(pf,"%d",&pD -> Ykor);
}
void ausgeben (struct Satz *pD)
{
while (pD!=NULL)
{ printf("%s\n",pD -> Name); // eigentlich (*pD).Name pD = pD -> next; // eigentlich (*pD).next }
}
void einfuegen(struct Satz **Anker,struct Satz Daten) {
struct Satz *hilf = *Anker; *Anker=(struct Satz*)malloc(sizeof(struct Satz)); **Anker=Daten; (*Anker) -> next = hilf;
}
|
Die Funktion dummy ist nötig, um einen bug im Borland Compiler zu denzimieren ;-)
Kann mir jemand bei dem FIFO Prinzip helfen ? Und wie läuft man vor und zurück; was sind doppelt verkettete Listen? Führt das zu den besagten Binären Bäumen ? Fragen über Fragen.. Please help me a bit...
--edit: Pablo. [ cpp ] tags gesetzt. Bitte nächstes Mal daran denken!-- Dieser Post wurde am 23.11.2003 um 19:25 Uhr von Pablo Yanez Trujillo editiert. |