1 / 9

Einfach verkettete Listen (OOP)

Einfach verkettete Listen (OOP). init() : Listen, Elemente und Zeiger. inc() : Anfügen des ersten Listenelementes. inc() : Einfügen neuer Listenelemente. Inhaltsverzeichnis. prev() : Bestimmen des Vorgängerelementes. Fehler : Versehentliches Ausketten.

marla
Download Presentation

Einfach verkettete Listen (OOP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Einfach verkettete Listen (OOP) init(): Listen, Elemente und Zeiger inc(): Anfügen des ersten Listenelementes inc(): Einfügen neuer Listenelemente Inhaltsverzeichnis prev(): Bestimmen des Vorgängerelementes Fehler:Versehentliches Ausketten eras(): Löschen des aktuellen Listenelementes Eine einfache Aufgabe

  2. Einfach verkettete Listen (OOP) aktuell #include <iostream.h>class elem {private: int id; public: elem *next; elem(){ id=0;next=NULL;} } *anker, *aktuell; void init() { anker = aktuell = NULL; } int main() { return0; } #include <iostream.h>class elem {private: int id; public: elem *next; elem(){ id=0;next=NULL; } } *anker, *aktuell; void init() { anker = aktuell = NULL; } int main() { init(); // Leere Liste return0; } #include <iostream.h>class elem {private: int id; public: elem *next; elem() { id=0; next=NULL; } elem(intidi) { id = idi; next = NULL; } } *anker, *aktuell; void init() { anker = aktuell = NULL; } int main() { init(); // Leere Liste anker= aktuell= new elem; // anker->next = NULL; return0; // Erstes Element } anker NULL Keine Liste Leere Liste Liste mit einem Element Listen, Elemente und Zeiger next NULL

  3. anker aktuell Einfach verkettete Listen (OOP) voidinc(int idi) { elem *hilf = newelem(idi); if(!aktuell) { hilf->next = anker; anker = hilf; } aktuell = hilf; } int main() { init(); // Leere Liste inc(1); // Erstes Element return0; } void inc(int idi, string namei) { schueler *hilf =new schueler; hilf->id = idi; hilf->name = namei; } int main() { init(); inc( 1 ,“Peter“ ); return0; } NULL hilf 1 Anfügen des 1. Elementes NULL

  4. 2 2 Einfach verkettete Listen (OOP) voidinc(intidi) { elem *hilf = newelem(idi); if(aktuell) { hilf->next = aktuell->next; aktuell->next = hilf; } else { hilf->next = anker; anker = hilf; } aktuell = hilf; } int main() { init(); // Leere Liste inc(1); // Erstes Element inc(2); // Zweites Element return0; } anker aktuell 1 hilf Einfügen neuer Elemente NULL NULL NULL

  5. 2 3 2 2 3 voidinc(intidi) { elem *hilf = newelem(idi); if(aktuell) { hilf->next = aktuell->next; aktuell->next = hilf; } else { hilf->next = anker; anker = hilf; } aktuell = hilf; aktuell->id = idi; aktuell->name = namei; } int main() { init(); // Leere Liste inc(1); // Erstes Element inc(2); // Zweites Element aktuell = anker; inc(3); // Drittes Element return0; } Einfach verkettete Listen (OOP) anker aktuell 1 hilf NULL NULL NULL NULL

  6. 2 3 Einfach verkettete Listen (OOP) elem* prev() { elem *hilf; if( (!aktuell) || (aktuell==anker) ) return0; else { hilf = anker; while( hilf && (hilf->next != aktuell) ) hilf = hilf->next; returnhilf; } } int main() { init(); // Leere Liste inc(1); inc(2); // Element 1 und 2 aktuell = anker; inc(3); // Element 3 aktuell = prev(); // Vorgängerelement return0; // wird das aktuelle } aktuell anker hilf NULL Bestimmen des Vorgängerelementes 1 NULL

  7. 2 3 2 NULL Einfach verkettete Listen (OOP) int main() { init(); // Leere Liste inc(1); inc(2); // Element 1 und 2 aktuell = anker; inc(3); // Element 3 aktuell = last(); // Vorgängerelement aktuell->next = NULL;// !!! Fehler !!! return0; } aktuell anker hilf NULL Fehler: Versehentliches Ausketten 1 NULL NULL

  8. 3 3 2 2 Einfach verkettete Listen (OOP) booleras() { if(!aktuell) returnfalse; if (aktuell==anker) anker = aktuell->next; else prev()->next = aktuell->next; delete aktuell; aktuell=anker; } int main() { init(); // Leere Liste inc(1);inc(2);inc(3); // Elemente 1,2,3 aktuell = anker->next; // aktu auf Element 2 eras(); // Löschen Element 2 return0; } aktuell anker prev() Löschen des aktuellen Elementes 1 NULL NULL

  9. Einfach verkettete Listen (OOP) An einer FH bestehen für die Zulassung zum Studium für einige Fach-richtungen nur begrenzt viele Studienplätze zur Verfügung. Deshalb werden die Bewerber in Wartelisten gespeichert, in denen vom Bewerber der Name und die Abiturnote (1.0, …, 5.0) gespeichert sind. Für jede Fachrichtung wird eine gesonderte, nach der Abiturnote aufsteigend geordnete Liste dynamisch aufgebaut. Es soll eine OOP-Lösung mit Hilfe einfach verketteter Listen geschaffen werden, die folgende Funktionen realisieren kann: 1. Erstellen einer neuen Bewerberliste für eine bestimmte Fachrichtung2. Eingeben und speichern der Daten eines Bewerbers 3. Entfernen der Daten eines Bewerbes 4. Auslisten aller Bewerber einer Fachrichtung sortiert nach Abiturnote5. Eingabe einer maximalen Bewerberzahl x und einer Fachrichtungs- nummer und Auslisten aller zugelassenen x Bewerber.6. Aufruf der Funktionen durch den Nutzer aus einem Startmenü, das nach dem Programmstart automatisch auf dem Bildschirm erscheint. Eine einfache Aufgabe

More Related