000
17.05.2015, 23:12 Uhr
tomi15
|
Hallo an Alle,
ich musste eine einfach verkettete Liste erstellen, mit Zeigern in einer struktur, bisher ist es ok, aber... ich brauche hilfe bei deiser Aufgabe. Ich muss aus dieser einfach verkettete Liste eine doppelt verkettete liste machen. Und es soll irgendwie rückwärts laufen. Mit meinem Übungsbuch komme ich seit zwei Wochen nicht weiter, und der Lehrer hilft mir nix. Und ich darf es nicht neu schreiben, muss das hier verwenden. Bitte um Rat, egal was, aber ich kann es langsam nicht mehr sehen! Hoffe ich habe alles richtig gemacht.
C++: |
#include <iostream>
using namespace std;
struct listenelement { string daten; listenelement* next; };
void anhaengen(string datenneu, listenelement* listenanfang) { listenelement* hilfszeiger; hilfszeiger = listenanfang; while(hilfszeiger->next != NULL) hilfszeiger = hilfszeiger->next; hilfszeiger->next = new (listenelement); hilfszeiger = hilfszeiger->next; hilfszeiger->daten = datenneu; hilfszeiger->next = NULL; } void ausgeben(listenelement *listenanfang) { listenelement* hilfszeiger; hilfszeiger = listenanfang; cout << hilfszeiger->daten << '\n'; while (hilfszeiger->next != NULL) { hilfszeiger = hilfszeiger->next; cout << hilfszeiger->daten << '\n'; } } void ende(listenelement* listenanfang) { listenelement* hilfszeiger; while (listenanfang !=NULL) { hilfszeiger = listenanfang; listenanfang = listenanfang->next; delete (hilfszeiger); } }
int main () { listenelement* listenanfang; listenanfang = new (listenelement); listenanfang->next = NULL; listenanfang->daten = "Element 1", anhaengen("Element 2", listenanfang); anhaengen("Element 3", listenanfang); anhaengen("Element 4", listenanfang); ausgeben (listenanfang); ende (listenanfang); return 0; }
|
----- Edit: Quelltext neu formatiert. Dieser Post wurde am 19.05.2015 um 01:11 Uhr von Hans editiert. |