Bitte um Hilfe.
-
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.#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; }
-
Wo ist denn der
->prevEintrag in der struct?
-
Was hast du bisher versucht? Ich vermute, das ist der Quelltext den du vom Lehrer bekommen hast. Hast du Probleme einen Ansatz zu finden?
-
Ja, das ist was wir vom Lehrer bekommen haben, und das wars, damit müssen wir arbeiten. Habe versucht einen neuen Hilfzeiger reinzubringen, aber es wollte nicht so richtig, dann einen next->last Befehl, aber das wollte es auch nicht annehmen.
Ich weiß echt nicht was der Lehrer möchte, egal was ich reinschreibe, es geht nicht. Die Grundstrucktur ist ok, es geht ja. Aber ich komme mit der Aufgabe nicht klar.
-
"Ich habe etwas gemacht und das wollte nicht" - glaubst du jetzt ernsthaft, dass dir dazu jemand eine hilfreiche Antwort geben kann?
Zeige Code und die Fehlermeldungen des Compilers.
Als allererstes brauchst du keinen Hilfszeiger sondern einen auf das vorherige Element, wie DirkB schon sagte.
-
Ja, sorry, ich habe "ETWAS" gemacht, sorry, dass ich keine 100000 lösungen hier poste, ich schaffe es nicht, ich hab schon den Lehrer gefragt, da kriege ich keine Hilfe, in solchen Communitys auch nicht richtig. Sorry, dass ich kein Proggramierer bin, sorry, dass mich das eigentlich nicht so sehr interresiert wie euch hier. Es ist eine Hausaufgabe was ich lösen muss. Wenn es nicht geht, dann ist es ne 6 und fertig.
Sorry, dass ich gewagt habe eine Frage zu stellen, bzw. mit mein Problem euch hier belästigt habe.
Danke für die Hilfen.
-
tom830211 schrieb:
Ja, sorry, ich habe "ETWAS" gemacht, sorry, dass ich keine 100000 lösungen hier poste,
Du solltest auch nur einen Versuch hier posten, damit wir sehen wo es bei dir hakt.
tom830211 schrieb:
... , da kriege ich keine Hilfe, in solchen Communitys auch nicht richtig.
Doch bekommst du. Aber hier fängt keiner an dir das Programmieren beizubringen.
tom830211 schrieb:
Es ist eine Hausaufgabe was ich lösen muss.
Da herscht hier (komischerweise) eine ziemliche Einigkeit: Fremde Hausaufgaben werden nicht gemacht.
Es sind deine Hausaufgaben.Ich habe den Eindruck, du weißt noch nicht einmal, wie doppelt verkettete Listen aufgebaut sind.
Du bekommst Hilfe, wenn du vernünftig fragst und Eigenleistung zeigst.
-
tom830211 schrieb:
Bitte um Rat, egal was, aber ich kann es langsam nicht mehr sehen!
Wieso wählst du das Fach dann? (Oder ist Informatik in der Schule mittlerweile zum Pflichfach geworden?)
tom830211 schrieb:
Hoffe ich habe alles richtig gemacht.
Nö
-
So weit bin ich gekommen, es fängt wänigstens an zu arbeiten, aber ich bekommen eine Fehlermeldung.
Und ja, ich weiß es nicht wie die doppelt verkettete Liste aufgebaut ist,ehrlich gesagt will ich es auch nicht wissen so wie es jetzt aussieht.
Ich kann keine korrekte Frage stellen, weil ich selber nicht weiß wieso es so ein problem ist sowas zu machen. Das ist meine erste, und hoffentlich lätzte solche Aufgabe.
Die einzige Sache was wir bekommen haben, dass wir irgendwo den Ausdruck "hilfszeiger->next->last" benutzen sollen.Ich hatte zur Auswahl, Fremdsprachen und/oder Informatik. Programmieren gehört halt leider Gottes dazu, aber ich habe noch 7 Aufgaben zu Lösen in diesem Jahr, und das ist das einzigste was ich nicht hinkriege. Ich möchte mich nicht und nie mit Programmieren beschäftigen, möchte nicht im IT bereich arbeiten. ist immernoch eine einzige HAUSAUFGABE!
#include <iostream> using namespace std; struct listenelement { string daten; listenelement* next; listenelement* last; }; 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->last = NULL; listenanfang->daten = "Element 1", anhaengen("Element 2", listenanfang); anhaengen("Element 3", listenanfang); anhaengen("Element 4", listenanfang); ausgeben (listenanfang); ende (listenanfang); return 0; }
-
struct listenelement { string daten; listenelement* next; listenelement* prev; };So ist ein Listenelement einer doppelt verketteten Liste aufgebaut. Falls ihr so eine Aufgabe bekommt, solltet ihr im Unterricht doch irgendwann mal den Unterschied zwischen einfach und doppelt verketteten Listen durchgesprochen haben, oder?
-
Patrick,
der lätzte satz ist. "Das erstellen einer doppelt verkettete Liste wartet auf euch als Hausaufgabe" Im Buch, bzw im Hand-ot gibt's nix, kein Wort, nada!
Und das ist mein Problem.
Jetzt habe ich deine Hilfe angenommen, es eingebaut, es geht jetzt ohne fehlermeldung, aber ob es jetzt eine doppelt verkettete liste ist, das weiß ich nicht, und es geht ja auch nicht rückwärts.#include <iostream> using namespace std; struct listenelement { string daten; listenelement* next; listenelement* prev; listenelement* last; }; 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->prev = NULL; listenanfang->last = NULL; listenanfang->daten = "Element 1", anhaengen("Element 2", listenanfang); anhaengen("Element 3", listenanfang); anhaengen("Element 4", listenanfang); ausgeben (listenanfang); ende (listenanfang); return 0; }
-
jetzt hast du das Originalprogramm um genau 2 variablen erweitert - und jetzt?
google spuckt bei "doppelt verkettete liste" c/c++ direkt als erstes
diese Seite aus: http://perlgeek.de/de/artikel/doppelt-verkettete-listenin C, mit Beispielen
-
troika,
danke, aber hat mich nicht veitergebracht. Ich verstehe diese Zeiger, Hilfszeiger, wo was hingehören soll nicht, hab schon Zeichnungen erstellt, aber komm nicht dahinter, ich sehe die zwei neuen Variablen, aber das "wie weiter", ist mein Problem!
-
Das ist so trivial, wenn du das nicht verstehst, dann hör mit dem Programmieren auf. Das ist einfach nichts für dich, alles andere wird viel schwieriger.
-
Mechanics,
ist eine HAUSAUFGABE, ich WERDE und MÖCHTE NICHT Programmierer werden, ich muss das hier als HAUSAUFGABE einreichen, nix weiter. Wenn es für dich so trivial ist, dann sende mir die lösung zu, dass ich gehen kann, oder lass mich in ruhe, brauche keine solchen Komments. Wahrscheinlich gibt es Sachen die ich besser kann als du, trotzdem.
Habe um Hilfe gebeten, nicht um solche Aussagen.Danke!
-
Aber am Ende nimmste mit dem durch Betrug erlangten besseren Abschluss vielleicht jemandem den Job weg, der ihn eher verdient hätte.
-
Volkard,
was für einen Job??? Im IT Bereich??? Ich möchte da nie arbeiten. Aber wie oft muss ich das noch hier schreiben. HAUSAUFGABE NIX WEITER. Mein Abschluss ist bzw wird im Sozialen Bereich, hat außer Office nix am Hut mit IT!
Danke an alle die es versucht haben mir zu helfen.
-
Programmieraufgabe in der Schule? Ich halte überhaupt nichts von Informatik als Pflichtfach, für alle, die es nicht interessiert, ist es wohl in der Tat eine Qual.
-
Ja, ist es, aber ich möchte es machen, wenn ich es schon als Aufgabe habe, aber es ist echt keine Hilfe, wenn ich nur negative Komments bekomme. Informatik als Pflichtfach ist schon ok, aber das ist schon ein anderes Level, ich möchte es nicht, eigentlich die ganze Klasse nicht, uns quelt der Lehrer mit sowas, manches ist noch machbar gewesen, aber mit sowas kann keine von uns was anfangen. Deshalb habe ich hier um Hilfe ersucht.
-
Mechanics schrieb:
Programmieraufgabe in der Schule? Ich halte überhaupt nichts von Informatik als Pflichtfach, für alle, die es nicht interessiert, ist es wohl in der Tat eine Qual.
Das würde ich noch erweitern auf Duetschunterricht.
Auch Mathe ist eine sinnlose Qual, wer muss an der Arbeit schon rechnen können?
-
Volkard,
lass es, was hat eine doppelt verkettet Liste als Haushaufgabe mit allgemeinbildung zu tun??? Nix, also, bitte, geh weiter, danke!