Frage zu einer Listenaufgabe-Bald Prüfung
-
Hi Leute,
ich studiere Logistik und habe C++ als Fach.
Früher hat mich das Programmieren interessiert aber jetzt irgendwie nicht mehr so.Naja,ich habe eine Frage zu dieser Aufgabe:
a)
Verwenden Sie die folgende, aus der VL bekannte Listenstruktur in einer Funktion ListenElement* massiveListe(), um eine verkettete Liste mit 10 Millionen Elementen zu erzeugen.
Die Funktion soll einen Zeiger auf das ersre ListenElement zurückgeben,sobald die Liste erzeugt ist.
Im ersten Element soll die Variable info auf 1 gesetzt werden, im Zweiten auf 2 usw.
Der letzte Zeiger "weiter" des letzten Typen ListenElement soll auf "NULL" zeigen.struct ListenElement { int info; ListenElement *weiter; };Lösung:
ListenElement* massiveListe(){ ListenElement *first,*neuesElement; first=neuesELement=NULL; for (int i=0;i<10000000;i++){ neuesElement=new ListenElement; neuesElement->info=(10000000-i); neuesElement->weiter=first; first=neuesElement; } return first; }Mein Problem ist jetzt,das was in der Aufgabenstellung steht in Code umzuwandeln.
Das wäre genial wenn mir jemand erklären könnte,was in jeder einzelnen Zeile Code passiert,ich hab da irgendwie Schwierigkeiten
Kann man bis nächsten Freitag Listen so gut können,dass man solche Aufgaben lösen kann?
Wenn ja,wie?Wenn nein,beten?;)
Danke schonmal für eure Hilfe,
bye
der fragenjunge
-
fragenjunge schrieb:
Kann man bis nächsten Freitag Listen so gut können,dass man solche Aufgaben lösen kann?
Ja, locker. Dafür solltest Du Dich aber weniger mit der Aufgabe als viel mehr mit einigen Konzepten auseinandersetzen. Keine Angst, nicht besonders viel.
Wichtigstes Konzept: Zeiger (Wikipedia)
Oh, viel Text, wenig Konkretes. Na ja, dann vielleicht dieses Video (C++-Version anschauen): http://cslibrary.stanford.edu/104/ (Ja, wirklich ansehen! Anschaulicher erklärt gibt es nicht.)
Und dann natürlich noch: Die Liste (Wikipedia)
Lies den Absatz zur einfach verketteten Liste, richte ein besonderes Augenmerk auf die Grafiken.
Und zum Schluss übertrage das Wissen auf C++: Wie wird ein Zeiger dargestellt? Wie lässt man ihn auf etwas zeigen? Wie kommt man an den Inhalt? (Siehe Video.) Und jetzt weiterdenken: In einer Liste wird das ganze immer wiederholt, die Datenstruktur ist "rekursiv" (Wikipedia: Rekursion) -- wie erreicht man das? Wie sieht die Struktur in der Aufgabenstellung aus? Wie fülle ich die Elemente?
(Übrigens: Der Lösungscode ist nicht besonders schön. Mit dem obigen Wissen und etwas Nachdenken solltest Du eine schönere Lösung hinbekommen.)
-
hmmm,die Zeiger habe ich eigentlich so weit es geht verstanden.
ich habe so ein repetitorium besucht und dort haben wir das auch mit bildchen dargestellt.
das video läd leider immer noch,weswegen ich vorerst nicht weitermache mit dem lesen.das nervt mich echt,dass ich das früher nicht gelernt habe:(
jetzt sitze ich an einigen aufgaben und versuch die einfach zu verdrängen:(
aber in der prüfung gibts für die listenaufgaben die hälfte der Punkte die man zum Bestehen braucht.Es gibt 10 Aufgaben:
1. Fehler in Programmcode finden
2. Was ist die Ausgabe eines gegebenen Programmcodes?
3. Array-Aufgabe
4. Rekursionsaufgabe
5. Definitionen aus Script (in der 1. Klausur waren es Baum, Knoten, Blatt)
5.1. Bäume malen
6. Programmieren von Listen-Aufgabe
7. Programmieren von Baum-Aufgabe
8. Programmieren von komplizierterer Listenaufgabe
9. ADT
10. Class6-8 machen mir sorgen:(
-
Für Bäume eigentlich ganz schön: http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_bst1.aspx