020
21.06.2004, 18:35 Uhr
~iboT
Gast
|
Hallo...mal wieder ;-) diesmal gehts um dynamisch verkettete Listen.
Ich hab jetzt mal versucht solch eine Liste zu programmieren. Leider passiert nichtmal ansatzweise das was ich mir vorgestellt habe. Ich kann zwar Elemente hinzufügen, aber die Ausgabe- und die Suchfunktion funktionieren nicht.
Hier mein Programm:
C++: |
# include <conio.h> # include <iostream> # include <stdlib.h> # include <process.h>
using namespace std;
struct tEintrag { char stadt[30]; int plz; tEintrag *next; }; void eingabe(tEintrag *pElem, tEintrag *pTop); void suchen(tEintrag *pElem, tEintrag *pTop); void ausgabe(tEintrag *pElem, tEintrag *pTop);
void main() { char q; tEintrag *pElem, *pTop; pTop = NULL; pElem = NULL; do { cout<<"\nBitte waehlen:"<<endl; cout<<"Eintrag hinzufuegen:\t'h'"<<endl; cout<<"PLZ suchen:\t's'"<<endl; cout<<"Alle Elemente ausgeben:\t'a'"<<endl; cout<<"Beenden:\t'q'"<<endl; cin>>q; switch(q) { case 'h': { eingabe(pElem, pTop); break; } case 's': { suchen(pElem, pTop); break; } case 'a': { ausgabe(pElem, pTop); break; } } system("CLS"); }while (q != 'q'); }
//----------------Eingabe-Funktion------------------
void eingabe(tEintrag *pElem, tEintrag *pTop) { pElem=new (tEintrag); cout<<"\nStadt: "; cin>>pElem->stadt; cout<<"Plz: "; cin>>pElem->plz; cout<<pElem->stadt<<" "<<pElem->plz; pElem->next=pTop; pTop=pElem; }
//----------------such-Funktion--------------------
void suchen(tEintrag *pElem, tEintrag *pTop) { int suchplz; cout<<"\nBitte die gesuchte PLZ eingeben: "; cin>>suchplz;
pElem = pTop; while (pElem != NULL) { if (suchplz == pElem->plz) cout<<"Die gesuchte PLZ: "<<pElem->plz<<" die dazugehoerige Stadt: "<<pElem->stadt<<endl; pElem=pElem->next; } getch(); }
//---------------Ausgabe-Funktion---------------------
void ausgabe(tEintrag *pElem, tEintrag *pTop) { pElem=pTop; while (pElem != NULL) { cout<<"\nPLZ: "<<pElem->plz<<" Stadt: "<<pElem->stadt<<endl; pElem=pElem->next; } getch(); }
|
Also da das Programm von mir stammt hats bestimmt viele Fehler drin. Falls jemand welche entdeckt wärs super wenn ihr mir helfen könntet :-)
Dann hab ich da noch eine Zeile gefunden bei der ich nicht weiss was das soll:
C++: |
.... struct tEintrag { char name[10]; tEintrag *next; };
[b]void einfuegen(tEintrag *pNew, tEintrag *& pTop);[/b]
void main() { tEintrag *pTop, *pNew; ...... pTop=NULL; .... einfuegen(pNew,pTop); ... }
[b]void einfuegen(tEintrag *pNew, tEintrag *& pTop)[/b] { ....... }
|
Was bedeutet *& ???? Eine Referenz auf einen Pointer? Aber was heisst das? Würde das ganz nicht genausogut ganz "normal" ohne Referenz, nur mit Pointer funktionieren? Dieser Post wurde am 21.06.2004 um 18:39 Uhr von Pablo editiert. |