Beachten Sie, dass die Zeitkomplexität des Einfügevorgangs abhängig von der Position variiert, an der wir einen Knoten einfügen. Das Einfügen am Ende der Liste dauert beispielsweise linear, wenn das Ende der Liste unbekannt ist. Andererseits benötigt das Einfügen eines neuen Knotens am Anfang immer eine konstante Zeit. Der folgende Code demonstriert die Funktion insertNodeEnd, die als Kernfunktion zum Erstellen einer Liste behandelt werden kann. Es nimmt den Kopf der Liste als ersten Parameter und die string -Daten, die an einem neuen Knoten gespeichert werden müssen. Die Funktion kann das erste Element in der Liste erstellen und neue Elemente an dessen Ende anhängen. Die Funktion weist neue Knoten im freien Speicher zu. C++ liste erstellen. Daher wird die Funktion freeNodes benötigt, um den gesamten Speicher vor dem Beenden des Programms freizugeben.
- Dynamische Strukturen in C++
- Artikel | Einfach verkettete Listen in C
Dynamische Strukturen In C++
Natürlich sind solche Listen
nicht unbedingt sinnvoll. Was passiert also, wenn der
komplette Listeninhalt ausgegeben wird. foreach ( Object obj in
alist)
{
Console. WriteLine(obj);}
Diese Ausgabe funktioniert ebenfalls fehlerlos, ist nur
beim Element des Thread wenig nützlich. Problematisch
wird so eine Liste erst dann, wenn man die Summe aller
Listenelemente berechnen will, oder alle Elemente auf
einen anderen Datentyp konvertieren möchte. Solange
sich nur Zahlen in der Liste befinden, ist es kein
Problem. Stößt man hingegen auf Zeichenketten oder
andere Datentypen sind die Probleme buchstäblich
vorprogrammiert. Liste erstellen. Eine ArrayList kann viele verschieden Datentypen
aufnehmen, doch muss der Programmierer selbst dafür
Sorge tragen, dassder Liste nur Elemente zugefügt
werden, die auch fehlerlos verarbeitet werden können. Eine Liste die von vornherein auf einen bestimmten
Datentype festgelegt ist, ist in den meisten Fällen
sinnvoller. Dafür gibt es generische Listen. Die Definition einer generischen Liste ist denkbar
einfach:
List namen =
new List();
erzeugt eine Liste aus Zeichenketten
List zahlen =
new List();
erzeugt eine Liste aus Ganzzahlen.
Artikel | Einfach Verkettete Listen In C
In C++ konnte man die einfach als Text einfügen, das will bei C aber irgendwie nicht so richtig funktionieren. Kannst du das genauer beschreiben? Ich habe keine Ahnung was du meinst. Vermeide dabei Ausdrücke wie "irgendwie" oder "nicht funktionieren", weil diese gar nichts aussagen. Außerdem hab ich keine Ahnung, was die Funktion mul ist, da uns weder Tutoren noch Prof richtig zeigen, wie wir mit C programmieren und ich mir das im Moment alles selbst beibringe. Dynamische Strukturen in C++. Nur weiß ich dann immernoch nicht, wie ich das alles machen soll. Steht doch in Punkt 3 beschrieben, was das sein soll. In c++ haben wir das einfach immer so gemacht:
cout<<"-------------------------------------"<
Stelle dir vor, du sollst die Software für eine Wetterstation schreiben. Das Programm soll die gemessenen Temperaturwerte zwischenspeichern und die Durchschnitts-Temperatur des Tages berechnen. Wie wir Werte zwischenspeichern, haben wir bereits gelernt: Wir verwenden dafür Variablen. Für die Berechnung der Durchschnitts-Temperatur könnten wir z. B. jede Stunde den Wert messen und speichern. Das wären 24 Variablen. Was ist aber, wenn das Ergebnis zu ungenau ist und jede Minute gemessen werden soll? Dann wären das 24 mal 60 Variablen, also 1440. Über tausend Variablen zu deklarieren hört sich nach viel Arbeit an:
float messwert1, messwert2, messwert3,..., messwert1439, messwert1440;
Einfacher geht es mit einem Feld von Variablen. Hierfür benötigen wir lediglich eine Deklaration:
Hier haben wir 1440 float Variablen auf einen Schlag angelegt. Bei der Deklaration eines Feldes beginnen wir, wie auch bei einfachen Variablen, mit Datentyp und Name. Danach folgen eckige Klammern. Artikel | Einfach verkettete Listen in C. In diese schreiben wir die Feldgröße, also die Anzahl der Variablen, welche wir erstellen wollen.