p.1
Einfach verkettete Liste
Was ist eine verkettete Liste?
Eine Reihe von Elementen, die in bestimmter Reihenfolge angeordnet sind.
p.26
Zugriff auf Listenelemente
Wie sucht man ein bestimmtes Element in einer verketteten Liste?
Durch eine Schleife, die prüft, ob das aktuelle Element NULL ist oder die Artikelnummer nicht 456 entspricht.
p.5
Einfach verkettete Liste
Wie wird eine verkettete Liste in C initialisiert?
Durch die Deklaration von Listnode *pstart = NULL, *p.
p.38
Einfüge- und Löschoperationen
Wie fügt man ein neues Element an Stelle i in eine verkettete Liste ein?
Das neue Element wird an die Stelle i eingefügt, indem man die Zeiger entsprechend anpasst.
Wie wird die Multiplikation in der Stapel-Auswertung dargestellt?
Durch die Operation push( pop() * pop() ).
p.75
Einfach verkettete Liste
Wie wird ein neues Element am Anfang der Liste eingefügt?
Indem das neue Element als Kopf der Liste gesetzt wird.
p.75
Einfüge- und Löschoperationen
Wie wird die Größe der Liste angepasst?
Durch Erhöhung der Listengröße um 1.
p.75
Einfach verkettete Liste
Was passiert, wenn das Element NULL ist und die Liste leer ist?
Das neue Element wird das Schlusslicht und der Kopf der Liste.
p.75
Einfüge- und Löschoperationen
Was passiert, wenn ein neues Element irgendwo anders als am Anfang eingefügt wird?
Das neue Element wird zwischen dem aktuellen Element und dem nächsten Element eingefügt.
p.15
Zugriff auf Listenelemente
Was ist ein wichtiges Risiko beim Umgang mit Zeigern in verketteten Listen?
Das versehentliche Löschen eines Zeigers.
p.27
Einfüge- und Löschoperationen
Was ist der erste Schritt beim Löschen eines Elements in einer verketteten Liste?
Hilfszeiger ptemp auf das zu löschende Element setzen.
p.23
Zugriff auf Listenelemente
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass es kein weiteres Element gibt.
p.70
Professionelle Implementierung von verketteten Listen
Was ist ein wichtiger Hinweis beim Erstellen von Makros?
Der gesamte Ausdruck und jeder Parameter muss in Klammern gesetzt werden.
p.31
Einfüge- und Löschoperationen
Wie löscht man ein Element in einer verketteten Liste?
Man passt die Zeiger des vorhergehenden Knotens an, um den zu löschenden Knoten zu überspringen.
p.23
Zugriff auf Listenelemente
Wie kann man auf die Elemente einer verketteten Liste zugreifen?
Indem man einen 'Laufzeiger' bis zum Ende der Liste laufen lässt.
p.18
Zugriff auf Listenelemente
Was ist ein 'Laufzeiger' in verketteten Listen?
Ein Zeiger, der durch die Liste läuft und auf das nächste Element zeigt.
Was sind verkettete Listen?
Eine Datenstruktur, die aus Knoten besteht, wobei jeder Knoten auf den nächsten zeigt.
p.4
Einfach verkettete Liste
Was ist ein Beispiel für ein Listenelement in einer verketteten Liste?
typedef struct listnode { unsigned artnr; char *artikel; double preis; struct listnode *next; } Listnode;
p.20
Zugriff auf Listenelemente
Wie greift man auf die Elemente einer verketteten Liste zu?
Indem man einen 'Laufzeiger' bis zum Ende der Liste laufen lässt.
p.6
Einfach verkettete Liste
Wie wird eine verkettete Liste angelegt?
Indem der Next-Zeiger auf das erste Listenelement gesetzt wird, das anfangs NULL ist.
p.13
Einfach verkettete Liste
Was ist der erste Schritt beim Anlegen einer verketteten Liste?
Ein neues Element erzeugen.
p.33
Einfüge- und Löschoperationen
Wie sieht ein Verfahren zum Löschen des ersten Elements aus?
Hilfszeiger ptemp auf erstes Element, pstart auf ptemp à next und ptemp löschen.
p.39
Einfüge- und Löschoperationen
Was ist der Zweck des Einfügens eines neuen Elements an Stelle i in einer verketteten Liste?
Ein neues Element in die Liste einzufügen.
p.42
Einfach verkettete Liste
Was sind die Hauptmerkmale von verketteten Listen?
Einfache und intuitive Einfüge- und Löschoperationen.
p.4
Einfach verkettete Liste
Welche Daten werden in einem Listenelement gespeichert?
Artikelnummer (artnr), Artikelname (artikel) und Preis (preis).
p.14
Einfach verkettete Liste
Was ist das Ziel der Übungsaufgabe?
Eine Funktion zur Erstellung einer Liste zu schreiben, in der die eingefügten Elemente in der Reihenfolge ihrer Einfügung vorkommen.
Wie lautet der arithmetische Ausdruck, der ausgewertet werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
Was ist ein Beispiel für die Verwendung von Stacks in der Informatik?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
Wie lautet der arithmetische Ausdruck, der evaluiert werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.41
Einfach verkettete Liste
Was sind die Nachteile der einfach verketteten Liste?
Geringe Beweglichkeit und unintuitive Lösch- und Einfügefunktionen.
p.29
Einfüge- und Löschoperationen
Was passiert mit dem Zeiger p, nachdem das Element gelöscht wurde?
p zeigt auf das nächste Element.
p.66
Einfach verkettete Liste
What is the purpose of the function 'list_init' in the list.h header file?
To initialize a linked list.
p.15
Zugriff auf Listenelemente
Was passiert, wenn ein Zeiger versehentlich gelöscht wird?
Es gibt keine Möglichkeit mehr, auf das entsprechende Element und den Rest der Liste zuzugreifen.
p.70
Professionelle Implementierung von verketteten Listen
Was ist die Funktion int f(int x) in Bezug auf x?
Sie gibt den Wert (4 · x + 3) zurück.
p.70
Professionelle Implementierung von verketteten Listen
Wie kann die Funktion int f(int x) durch ein Makro ersetzt werden?
#define F(x) (4 · (x) + 3)
p.20
Zugriff auf Listenelemente
Was ist die Funktion der while-Schleife im Kontext von verketteten Listen?
Sie durchläuft die Liste, bis das letzte Element erreicht ist.
p.13
Einfach verkettete Liste
Was zeigt der Verweis 'next' im neuen Element an?
Das nächste Element in der Liste oder NULL, wenn es das letzte Element ist.
p.31
Zugriff auf Listenelemente
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass der aktuelle Knoten der letzte Knoten in der Liste ist.
p.32
Einfüge- und Löschoperationen
Wie sieht ein Verfahren zum Löschen des ersten Elements aus?
Das erste Element wird entfernt, und der Zeiger auf das nächste Element wird aktualisiert.
Was ist ein Activation Record?
Ein temporärer Speicher, der Informationen über einen Funktionsaufruf speichert.
p.28
Einfach verkettete Liste
Was zeigt 'D4 next NULL' in einer verketteten Liste an?
Dass D4 das letzte Element ist und keinen weiteren Nachfolger hat.
Was zeigt der 'next'-Pointer in einer verketteten Liste an?
Er verweist auf das nächste Element in der Liste.
Was bedeutet das LIFO-Prinzip?
Last In, First Out - das zuletzt abgelegte Element wird zuerst entnommen.
p.38
Einfach verkettete Liste
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass das Ende der Liste erreicht ist.
Was ist der Rückgabewert in einem C-Programm?
Der Wert, den eine Funktion an den Aufrufer zurückgibt.
p.1
Einfach verkettete Liste
Was sind die Hauptbestandteile einer einfach verketteten Liste?
Daten, next-Zeiger, Kopf-Element und NULL für das Ende.
p.5
Dynamische Speicherallokation
Was muss nach der Speicherallokation beachtet werden?
Fehlerbehandlung, da malloc möglicherweise keinen Speicherplatz zuweist.
p.38
Einfüge- und Löschoperationen
Was passiert mit 'pv à next' beim Einfügen eines neuen Elements?
Der Zeiger von pv wird auf das nächste Element aktualisiert.
Wie funktioniert das FIFO-Prinzip in einer Schlange?
Elemente werden am Anfang abgelegt und am Ende entnommen.
p.64
Professionelle Implementierung von verketteten Listen
Was definiert die Struktur für die Elemente einer verketteten Liste?
typedef struct ListElmt_ { void *data; struct ListElmt_ *next; } ListElmt;
Wie wird der Stapel in der Implementierung initialisiert?
Durch Setzen des Index auf 0.
Was ist ein Stapelspeicher?
Ein Speicher, der die Prinzipien von Stapeln (Stacks) verwendet.
p.40
Einfüge- und Löschoperationen
Was ist das Ziel beim Einfügen eines neuen Elements an Stelle i in verkettete Listen?
Ein neues Element an der gewünschten Position in der Liste hinzuzufügen.
Was sind die zwei Grundoperationen eines Stapels?
1. Element auf dem Stapel ablegen (push), 2. Element vom Stapel nehmen (pop).
p.39
Einfüge- und Löschoperationen
Was geschieht mit dem Zeiger 'p', nachdem das neue Element eingefügt wurde?
Der Zeiger 'p' wird nicht mehr benötigt.
Wie arbeitet der Sachbearbeiter mit dem Stapel?
Er nimmt ein Blatt von oben und erledigt es.
p.66
Einfüge- und Löschoperationen
What is the function 'list_ins_next' used for?
To insert an element next to a specified element in the list.
p.12
Einfach verkettete Liste
Was zeigt der 'next' Zeiger des neuen Elements in einer verketteten Liste an?
Er zeigt auf NULL, wenn es das einzige Element ist.
p.28
Einfach verkettete Liste
Was repräsentiert 'pstart' in einer verketteten Liste?
Den Startpunkt der Liste.
Was ist ein Beispiel für einen Stack in einem C-Programm?
Der Stack bei Aufruf von fakult(3).
p.78
Professionelle Implementierung von verketteten Listen
Gib ein Beispiel für N und M und das Ergebnis der Anführerbestimmung.
N = 9, M = 5; Ergebnis = 5, 1, 7, 4, 3, 6, 9, 2, 8.
p.26
Zugriff auf Listenelemente
Was ist die Bedeutung von 'p != NULL' in der Schleife?
Es prüft, ob das Ende der Liste erreicht wurde.
p.25
Zugriff auf Listenelemente
Was passiert, wenn 'p à artnr != 456' wahr ist?
Der Zeiger p wird auf das nächste Element in der Liste gesetzt.
p.68
Dynamische Speicherallokation
Wie wird eine Funktion mit einem Integer-Referenzparameter aufgerufen?
Mit der Adresse einer Integer-Variablen.
p.72
Einfach verkettete Liste
Was wird in der Funktion 'list_init' auf 0 gesetzt?
Die Größe der Liste (size).
Warum muss die vorletzte Funktion das Ergebnis der letzten benötigen?
Weil die Berechnung der Fakultät rekursiv ist.
p.75
Einfach verkettete Liste
Was geschieht, wenn das Element nicht NULL ist und auf das letzte Element zeigt?
Das neue Element wird das Schlusslicht der Liste.
Was ist ein Beispiel für die Verwendung von Stacks?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.14
Einfach verkettete Liste
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass es kein weiteres Element in der Liste gibt.
p.14
Einfach verkettete Liste
Was ist der Unterschied zwischen der Einfüge-Reihenfolge und der aktuellen Reihenfolge der Elemente?
Die aktuelle Reihenfolge ist umgekehrt zur Einfüge-Reihenfolge.
p.33
Einfüge- und Löschoperationen
Kann mit dem Verfahren zum Löschen eines Elements auch das letzte Element gelöscht werden?
Ja, der next Zeiger des Vorgänger-Elements zeigt auf NULL.
p.18
Zugriff auf Listenelemente
Wie wird auf das nächste Element in einer verketteten Liste zugegriffen?
Durch den Befehl 'p = p à next'.
Was ist ein Beispiel für die Verwendung von Stacks in der Informatik?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.39
Einfüge- und Löschoperationen
Was passiert mit dem Zeiger 'next' beim Einfügen eines neuen Elements?
'next' wird auf das neue Element gesetzt.
p.37
Einfüge- und Löschoperationen
Wie fügt man ein neues Element an Stelle i in eine verkettete Liste ein?
Gehe mit dem Laufzeiger pv bis zum Vorgängerelement von i.
p.13
Einfach verkettete Liste
Was ist 'pstart' in Bezug auf verkettete Listen?
Ein Verweis auf den Anfang der vorhandenen Liste.
p.41
Einfach verkettete Liste
Warum sind die Lösch- und Einfügefunktionen bei einfach verketteten Listen unintuitiv?
Weil ein Zeiger auf das Element vor dem zu löschenden Element benötigt wird.
p.37
Einfüge- und Löschoperationen
Was zeigt der Laufzeiger pv an, nachdem die Schleife durchlaufen wurde?
pv zeigt auf das Vorgängerelement von i.
p.36
Einfüge- und Löschoperationen
Was ist der Zweck des Laufzeigers pv?
Er dient dazu, das Vorgängerelement von i zu erreichen.
Was ist eine Schlange (Queue) in der Datenstruktur?
Eine wichtige Datenstruktur mit beschränktem Zugriff, die das FIFO-Prinzip verwendet.
p.17
Zugriff auf Listenelemente
Was zeigt der 'next'-Zeiger in einer verketteten Liste?
Er zeigt auf das nächste Element in der Liste oder auf NULL, wenn es kein weiteres Element gibt.
Was ist das Beispiel für die Auswertung eines arithmetischen Ausdrucks?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.35
Zugriff auf Listenelemente
Was ist der Zweck des Laufzeigers pv?
Er dient dazu, durch die verkettete Liste zu navigieren.
Was passiert von Zeit zu Zeit mit dem Stapel?
Der Stapel wird auch mal abgearbeitet, sodass auch unterste Arbeiten dran kommen.
p.72
Einfach verkettete Liste
Welche Parameter benötigt die Funktion 'list_init'?
Ein Zeiger auf die Liste und eine Funktion zum Zerstören von Daten.
Was ist das Ziel des Beispiels mit dem arithmetischen Ausdruck?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.14
Einfach verkettete Liste
Wie ist die Reihenfolge der Elemente in der gegebenen Liste?
Umgekehrt zur Einfüge-Reihenfolge.
p.27
Einfüge- und Löschoperationen
Was repräsentiert der Zeiger p in der Beschreibung?
Den Zeiger auf das Element vor dem zu löschenden Element.
p.11
Einfach verkettete Liste
Was ist der erste Schritt beim Anlegen einer verketteten Liste?
Startzeiger auf neues Kopfelement setzen.
p.19
Zugriff auf Listenelemente
Was ist ein 'Laufzeiger' in verketteten Listen?
Ein Zeiger, der durch die Liste läuft und auf das nächste Element zeigt.
p.18
Zugriff auf Listenelemente
Was zeigt der 'next'-Zeiger in einer verketteten Liste an?
Das nächste Element in der Liste oder NULL, wenn es kein weiteres gibt.
p.41
Doppelt verkettete Liste
Was ist ein Grundbaustein der doppelt verketteten Liste?
prev-Zeiger, Daten und next-Zeiger.
Was passiert mit neuen Arbeiten im Stapel eines Sachbearbeiters?
Sie werden oben auf den Stapel gelegt.
p.43
Professionelle Implementierung von verketteten Listen
Was wird nach der Einführung des Stapels behandelt?
Die professionelle Implementierung einer verketteten Liste.
Was zeigt der 'next'-Zeiger in einer verketteten Liste an?
Er verweist auf das nächste Element in der Liste.
Was ist die Struktur eines Knotens in der verketteten Liste für einen Stapel?
struct node { int key; struct node *next; };
p.16
Zugriff auf Listenelemente
Wie greift man auf die Elemente einer verketteten Liste zu?
Indem man einen 'Laufzeiger' erzeugt und auf das Startelement setzt.
p.25
Zugriff auf Listenelemente
Wie sucht man ein bestimmtes Element in einer verketteten Liste?
Durch eine Schleife, die solange läuft, bis das Element gefunden ist oder das Ende der Liste erreicht wird.
p.26
Zugriff auf Listenelemente
Was bedeutet 'p = p à next' in der Schleife?
Es bewegt den Zeiger p zum nächsten Element in der Liste.
p.21
Zugriff auf Listenelemente
Wie kann man auf die Elemente einer verketteten Liste zugreifen?
Indem man einen 'Laufzeiger' bis zum Ende der Liste laufen lässt.
p.72
Einfach verkettete Liste
Was ist der Zweck der Funktion 'list_init'?
Sie initialisiert eine verkettete Liste.
p.62
Komplexität von Datenstrukturen
Was passiert, wenn das Ende des Feldes erreicht wird?
Es gibt keine Überprüfung, ob das Feldende erreicht wurde.
Was passiert, wenn die 'pop'-Funktion aufgerufen wird?
Der Index wird um eins verringert und das Element an dieser Position wird zurückgegeben.
p.7
Einfach verkettete Liste
Was passiert mit dem Startzeiger, wenn ein neues erstes Element der Liste erstellt wird?
Der Startzeiger wird auf dieses neue erste Element umgestellt.
p.8
Einfach verkettete Liste
Was zeigt 'next' in einer verketteten Liste an?
Es zeigt auf das nächste Element oder ist NULL, wenn es das letzte Element ist.
Was ist die Struktur eines Knotens in der verketteten Liste für einen Stapel?
struct node { int key; struct node *next; };
Was ist der Zweck des 'next'-Zeigers in einer verketteten Liste?
Er verweist auf das nächste Element in der Liste.
p.64
Professionelle Implementierung von verketteten Listen
Was ermöglicht der Void-Zeiger im Element der verketteten Liste?
Es ermöglicht, Listen mit beliebigem Dateninhalt zu erzeugen.
p.64
Professionelle Implementierung von verketteten Listen
Dürfen Strukturen Instanzen von sich selbst enthalten?
Nein, sie dürfen keine Instanzen von sich selbst enthalten, wohl aber Pointer darauf.
p.29
Einfach verkettete Liste
Was zeigt der 'next'-Zeiger eines Elements in einer verketteten Liste an?
Das nächste Element in der Liste.
p.19
Zugriff auf Listenelemente
Wie wird auf das nächste Element in einer verketteten Liste zugegriffen?
Durch den Befehl 'p = p à next'.
p.6
Einfach verkettete Liste
Wie sieht die Struktur eines neuen Listenelements aus?
p à next = NULL; pstart = NULL.
p.12
Einfach verkettete Liste
Was ist der erste Schritt beim Anlegen einer verketteten Liste?
Startzeiger auf neues Kopfelement setzen.
p.80
Professionelle Implementierung von verketteten Listen
Warum ist die Wahl der Datenstruktur wichtig?
Sie ist häufig die wesentliche Entscheidung bei der Implementation.
Was ist die maximale Größe des Stapels in der gegebenen Implementierung?
MAX ist definiert als 100.
p.12
Einfach verkettete Liste
Wie wird das neue Element in einer verketteten Liste referenziert?
Durch den Startzeiger, der auf das neue Kopfelement zeigt.
p.19
Zugriff auf Listenelemente
Was passiert, wenn der Laufzeiger am Ende der Liste ankommt?
Der 'next'-Zeiger zeigt auf NULL.
p.35
Einfüge- und Löschoperationen
Wie fügt man ein neues Element an Stelle i in eine verkettete Liste ein?
Man erzeugt einen 'Laufzeiger' pv und setzt ihn auf pstart.
Was bedeutet 'NULL' im Kontext einer verketteten Liste?
Es zeigt an, dass es kein weiteres Element gibt.
p.76
Einfüge- und Löschoperationen
Was ist die Funktion von 'list_rem_next'?
Sie entfernt das auf 'element' folgende Element aus der verketteten Liste.
p.73
Einfüge- und Löschoperationen
Was wird gemacht, wenn das Entfernen eines Elements erfolgreich ist?
Wenn destroy nicht NULL ist, wird das Element gelöscht.
p.9
Einfach verkettete Liste
Was sind die Beispielwerte für die Nutzdaten eines neuen Elements?
artnr = 456, artikel = 'TShirt', preis = 5.90.
p.16
Zugriff auf Listenelemente
Was wird in der Codezeile 'Listnode *p;' deklariert?
Ein Zeiger auf einen Listenknoten.
p.21
Zugriff auf Listenelemente
Was zeigt der Laufzeiger p an, wenn er das Ende der Liste erreicht?
Er zeigt auf das letzte Element der Liste.
Was ist ein Hauptvorteil verketteter Listen gegenüber Feldern?
Die Größe der Liste kann zu- oder abnehmen, solange sie existiert.
Für welche Art von Problemen ist der Stapel eine natürliche Datenstruktur?
Für viele Informatik-Probleme, wie z.B. Activation Records bei rekursiven Funktionsaufrufen.
p.5
Einfach verkettete Liste
Wie werden die Nutzdaten in einen Listenknoten eingetragen?
Durch Zuweisungen wie p->artnr = 123; p->artikel = 'Poloshirt'; p->preis = 9.90;
p.23
Zugriff auf Listenelemente
Was zeigt der Laufzeiger p an, wenn er das Ende der Liste erreicht?
Er zeigt auf das letzte Element der Liste.
p.20
Zugriff auf Listenelemente
Was zeigt der Laufzeiger p an, wenn die Schleife endet?
p zeigt auf das letzte Element der Liste.
p.23
Zugriff auf Listenelemente
Was ist die Funktion des Codes 'while (p à next != NULL)'?
Er durchläuft die Liste, bis das letzte Element erreicht ist.
p.27
Einfüge- und Löschoperationen
Was muss nach dem Setzen des Hilfszeigers ptemp gemacht werden?
Das Element, auf das ptemp zeigt, muss gelöscht werden.
p.13
Einfach verkettete Liste
Was wird im neuen Element einer verketteten Liste gespeichert?
Der Verweis auf das nächste Element (next).
p.80
Komplexität von Datenstrukturen
Was sind Datenstrukturen?
Mittel zur Organisation von Daten für die Verarbeitung durch Programme.
p.11
Einfüge- und Löschoperationen
Was passiert mit dem vorherigen Element, wenn ein neues Element hinzugefügt wird?
Das vorherige Element wird wieder frei.
p.17
Zugriff auf Listenelemente
Was ist ein 'Laufzeiger' in verketteten Listen?
Ein Zeiger, der durch die Liste läuft und auf das nächste Element zeigt.
p.19
Zugriff auf Listenelemente
Was zeigt der 'next'-Zeiger in einer verketteten Liste an?
Das nächste Element in der Liste oder NULL, wenn es kein weiteres Element gibt.
p.10
Zugriff auf Listenelemente
Was zeigt der Zeiger 'p' in einer verketteten Liste an?
Das aktuelle Element in der Liste.
p.17
Zugriff auf Listenelemente
Wie wird auf das nächste Element in einer verketteten Liste zugegriffen?
Durch den Ausdruck 'p = p à next'.
p.26
Zugriff auf Listenelemente
Was passiert, wenn das Element in der verketteten Liste gefunden wird?
Wenn p != NULL, zeigt p auf das richtige Element.
p.9
Einfach verkettete Liste
Wie wird ein neues Element in einer verketteten Liste dargestellt?
Durch Zeiger auf das nächste Element (next).
p.78
Komplexität von Datenstrukturen
Was sind die Eingabegrößen für das Programm zur Bestimmung des Anführers?
N (Anzahl der Personen) und M (Schrittgröße).
p.1
Einfach verkettete Liste
Wie sind die Elemente in einer verketteten Liste im Hauptspeicher angeordnet?
Die Elemente dürfen an beliebiger Stelle im Hauptspeicher liegen und müssen nicht hintereinander stehen.
p.5
Dynamische Speicherallokation
Wie wird Speicher für einen neuen Listenknoten reserviert?
Mit malloc (sizeof(Listnode)).
p.66
Einfüge- und Löschoperationen
What does the 'list_rem_next' function accomplish?
It removes the element next to a specified element in the list.
p.25
Zugriff auf Listenelemente
Was bedeutet 'p != NULL' in der Schleife?
Es bedeutet, dass der Zeiger p auf ein gültiges Element zeigt.
p.17
Zugriff auf Listenelemente
Was passiert, wenn der Laufzeiger am Ende der Liste angekommen ist?
Der Laufzeiger zeigt auf NULL.
p.42
Einfach verkettete Liste
Was sind die Begriffe für die Enden einer verketteten Liste?
Start-Element und Ende-Element.
Was zeigt die Struktur der verketteten Liste im Beispiel?
D4 next NULL, pstart D2 next D3 next D1 next D2b next Neues Element p.
p.16
Zugriff auf Listenelemente
Wie wird der 'Laufzeiger' initialisiert?
Durch Zuweisung des Startknotens: p = pstart;
p.76
Einfüge- und Löschoperationen
Was passiert, wenn 'element' den Wert NULL hat?
Das Element am Kopf der Liste wird entfernt.
Was ist der Zustand von next in der verketteten Liste?
next zeigt auf das nächste Element oder ist NULL, wenn es kein weiteres gibt.
p.62
Dynamische Speicherallokation
Was sind die globalen Variablen in der Implementierung?
Das Feld stack und der Index.
Wie lautet der arithmetische Ausdruck, der ausgewertet werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.25
Zugriff auf Listenelemente
Was ist die Bedeutung von 'next' in einer verketteten Liste?
Es ist ein Zeiger, der auf das nächste Element in der Liste verweist.
p.29
Einfüge- und Löschoperationen
Was ist der erste Schritt beim Löschen eines Elements in einer verketteten Liste?
Ein 'Bypass' um das zu löschende Element legen.
p.6
Einfach verkettete Liste
Was passiert mit dem Startzeiger, wenn ein neues erstes Element der Liste erstellt wird?
Der Startzeiger wird auf dieses neue erste Element umgestellt.
p.43
Professionelle Implementierung von verketteten Listen
Wie kann ein Stapel implementiert werden?
In Form einer einfach verketteten Liste.
p.32
Einfüge- und Löschoperationen
Kann mit dem Verfahren zum Löschen eines Elements auch das letzte Element gelöscht werden?
Ja, es ist möglich, das letzte Element zu löschen.
p.18
Zugriff auf Listenelemente
Was passiert, wenn der Laufzeiger am Ende der Liste angekommen ist?
Der 'next'-Zeiger zeigt auf NULL.
p.78
Einfach verkettete Liste
Was ist eine zyklische Liste?
Eine Liste, bei der das letzte Element wieder auf das Kopf-Element zeigt.
p.42
Einfach verkettete Liste
Welcher zusätzlicher Speicherplatz wird bei verketteten Listen benötigt?
Speicherplatz für die prev-Zeiger.
p.80
Komplexität von Datenstrukturen
Wie beeinflusst die Wahl der richtigen Datenstruktur die Programmierung?
Sie hat Einfluss auf den Speicherplatzbedarf und die Algorithmeneffizienz.
p.73
Einfüge- und Löschoperationen
Was passiert, solange noch ein Element in der Liste ist?
Das Kopf-Element wird entfernt und ein Zeiger auf das entfernte Element wird zurückgegeben.
p.41
Einfach verkettete Liste
Was bedeutet 'geringe Beweglichkeit' in Bezug auf einfach verkettete Listen?
Es ist schwierig, auf Elemente zuzugreifen oder sie zu bewegen.
p.62
Einfüge- und Löschoperationen
Wie wird ein Element in den Stapel eingefügt?
Durch die Funktion push, die das Element an der aktuellen Indexposition ablegt und den Index erhöht.
p.7
Einfach verkettete Liste
Wie wird eine verkettete Liste angelegt?
Indem der Next-Zeiger auf das erste Listenelement gesetzt wird, das anfangs NULL ist.
Was zeigt der Zeiger 'pstart' in einer verketteten Liste?
'pstart' zeigt auf das erste Element der Liste.
Was sind verkettete Listen?
Eine Datenstruktur, die aus Elementen besteht, die durch Zeiger verbunden sind.
p.34
Einfüge- und Löschoperationen
Was ist der erste Schritt beim Einfügen eines neuen Elements an Stelle i in eine verkettete Liste?
Ein Element erzeugen und den Nutzinhalt hineinschreiben.
Welche globalen Variablen werden in der Stapel-Implementierung verwendet?
Das Feld 'stack' und die Variable 'index'.
Was ist das Ziel des Beispiels mit dem arithmetischen Ausdruck?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.65
Einfach verkettete Liste
Was definiert die Struktur für eine verkettete Liste?
Die Struktur enthält die Anzahl der Elemente, Funktionszeiger für das Vergleichen und Vernichten sowie Zeiger auf das erste und letzte Element.
p.3
Einfüge- und Löschoperationen
Warum bieten verkettete Listen höhere Flexibilität bei der Umsortierung von Elementen?
Weil das Einfügen in ein Array aufwendig ist und Elemente verschoben werden müssen.
Was passiert nach dem Pushen der Werte 5, 4, 6, 9, 8?
push( pop() + pop() ) wird ausgeführt.
p.43
Einfach verkettete Liste
Warum wurde der Stapel in diesem Kontext erwähnt?
Um ein einfaches Implementationsbeispiel zeigen zu können.
p.46
Dynamische Speicherallokation
Was sind die Hauptbestandteile der Speicherorganisation eines C-Programms?
Codebereich, statische Daten, Heap und Stack.
p.36
Einfüge- und Löschoperationen
Wie fügt man ein neues Element an Stelle i in eine verkettete Liste ein?
Gehe mit dem 'Laufzeiger' pv bis zum Vorgängerelement von i.
p.78
Einfüge- und Löschoperationen
Wie wird der Anführer in der zyklischen Liste bestimmt?
Indem sich N Personen im Kreis aufstellen und jedes Mal die M-te Person entfernt wird.
p.10
Einfach verkettete Liste
Was bedeutet 'NULL' in der Verkettung von Elementen?
Es zeigt das Ende der Liste an.
Was ist das Beispiel für die Auswertung eines arithmetischen Ausdrucks?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
Was ist die Funktion 'pop' in der Stapel-Implementierung?
Sie gibt das oberste Element des Stapels zurück und verringert den Index.
Wie wird der Stapel initialisiert?
Durch die Funktion stackinit, die head und tail mit malloc allokiert.
Was passiert, wenn fakult(3) aufgerufen wird?
Es wird eine Reihe von Funktionsaufrufen mit n = 2 und n = 3 erstellt.
p.9
Einfach verkettete Liste
Was bedeutet 'p à' in der Darstellung der verketteten Liste?
Es zeigt an, dass p auf die Eigenschaften des neuen Elements zugreift.
Wie wird die Verkettung zwischen den Elementen in einer verketteten Liste dargestellt?
Durch Zeiger, die auf das nächste Element zeigen.
Was wird dem key des Kopfes und des Endes in der stackinit-Funktion zugewiesen?
head->key und tail->key werden auf 0 gesetzt.
Wie lautet der arithmetische Ausdruck, der ausgewertet werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.30
Zugriff auf Listenelemente
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass das aktuelle Element das letzte in der Liste ist.
Welche globalen Variablen werden für die Implementierung eines Stapels verwendet?
struct node *head, *tail, *tmp;
p.74
Einfüge- und Löschoperationen
Was ist die Funktion von list_ins_next?
Sie fügt ein neues Element in die Liste ein.
Wie lautet der arithmetische Ausdruck, der in dem Beispiel ausgewertet wird?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.28
Einfüge- und Löschoperationen
Was ist der erste Schritt beim Löschen eines Elements in einer verketteten Liste?
Ein 'Bypass' um das zu löschende Element legen.
Was ist die maximale Größe des Stapels in der Implementierung?
MAX ist definiert als 100.
p.73
Dynamische Speicherallokation
Was ist die Funktion von list_destroy?
Sie löscht die Liste und gibt den Speicher frei.
p.31
Dynamische Speicherallokation
Was ist die Funktion 'free(ptemp)'?
Sie gibt den Speicher, der von 'ptemp' belegt wird, wieder frei.
p.5
Dynamische Speicherallokation
Was ist der erste Schritt beim Anlegen einer verketteten Liste?
Dynamische Speicherallokation.
p.39
Einfüge- und Löschoperationen
Wie wird das neue Element in die verkettete Liste eingefügt?
Indem der 'next'-Zeiger des vorherigen Elements auf das neue Element zeigt.
Warum ist das Verfahren des Stapels als unpraktikabel für Arzt-Wartezimmer angesehen?
Weil die Erledigung nicht nach Wartezeit geht.
Welche Grundoperationen gibt es bei einer Schlange?
1. Element in der Schlange ablegen (put()), 2. Element aus der Schlange entnehmen (get()).
Wie sind die Elemente in der verketteten Liste angeordnet?
Sie sind durch 'next'-Pointer miteinander verbunden.
Warum ist ein beschränkter Zugriff auf Datenstrukturen oft ausreichend?
In der Praxis ist oft nur ein beschränkter Zugriff notwendig.
Was macht die Funktion 'pop' in der Stapel-Implementierung?
Sie entfernt das oberste Element des Stapels und gibt dessen Wert zurück.
p.2
Einfach verkettete Liste
Wie ist eine verkettete Liste aufgebaut?
Sie besteht aus Elementen, die durch Zeiger verbunden sind, und hat einen Kopf- und einen Ende-Element.
Was ist das Ziel des Beispiels mit dem arithmetischen Ausdruck?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.21
Zugriff auf Listenelemente
Was passiert in der while-Schleife?
Der Laufzeiger p wird auf das nächste Element gesetzt.
p.3
Komplexität von Datenstrukturen
Was ist ein Nachteil von verketteten Listen im Vergleich zu Feldern?
Der Zugriff auf ein bestimmtes Element ist langsamer.
p.67
Einfüge- und Löschoperationen
Was macht die Funktion list_ins_next?
Sie fügt direkt hinter einem gegebenen Element ein neues Element ein.
p.69
Professionelle Implementierung von verketteten Listen
Wie verbessert ein Makro die Lesbarkeit?
Durch die Verwendung von verständlicheren Bezeichnern wie is_tail(element) anstelle von element->next == NULL ? 1 : 0.
p.66
Einfach verkettete Liste
What does the 'list_destroy' function do?
It destroys a linked list.
Wie wird der Stapel in der Implementierung dargestellt?
Durch ein Feld namens 'stack'.
Was ist die Rolle von 'next' in einer verketteten Liste?
'next' verweist auf das nächste Element in der Liste.
Was ist die Struktur eines Knotens in der verketteten Liste für einen Stapel?
struct node { int key; struct node *next; };
p.8
Dynamische Speicherallokation
Welcher Befehl wird verwendet, um Speicher für ein neues Listenelement zu reservieren?
p = (Listnode *) malloc (sizeof(Listnode));
p.10
Einfach verkettete Liste
Was ist der Zweck des Zeigers 'next' in einer verketteten Liste?
Er verweist auf das nächste Element in der Liste.
p.8
Einfach verkettete Liste
Was wird mit 'pstart' in einer verketteten Liste gemacht?
Es wird auf das neue Element gesetzt.
Was kann bei den gleichen Operationen mit Daten variieren?
Die Effizienz der Algorithmen.
p.73
Dynamische Speicherallokation
Was passiert mit der Struktur der Liste nach dem Löschen?
Die Struktur wird entfernt, um Fehlern vorzubeugen.
p.30
Einfüge- und Löschoperationen
Wie löscht man ein Element in einer verketteten Liste?
Durch Anpassen der Zeiger, um das Element zu überspringen.
p.34
Einfüge- und Löschoperationen
Was wird mit dem 'next'-Pointer des neuen Elements initialisiert?
Er wird auf NULL gesetzt.
p.25
Zugriff auf Listenelemente
Was zeigt der Zeiger p an, wenn die Schleife endet und p != NULL ist?
p zeigt auf das gesuchte Element.
p.69
Professionelle Implementierung von verketteten Listen
Was ist ein Makro?
Ein Stück Programmcode, das vom C-Präprozessor vor dem Compilieren durch ein anderes ersetzt wird.
Wie können die Operationen einer Schlange realisiert werden?
Mit verketteter Liste und Feld.
Wie lautet der arithmetische Ausdruck, der ausgewertet werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
Welche Operation wird mit 'push( pop() * pop() )' durchgeführt?
Multiplikation der obersten zwei Elemente des Stapels.
p.24
Zugriff auf Listenelemente
Was zeigt 'p' an, wenn die Schleife endet und 'p != NULL' ist?
Wenn 'p != NULL' ist, zeigt 'p' auf das gesuchte Element in der Liste.
p.8
Dynamische Speicherallokation
Was ist der erste Schritt beim Anlegen einer verketteten Liste?
Dynamische Speicherallokation des nächsten Elements.
p.1
Einfach verkettete Liste
Was ist der Grundbaustein einer einfach verketteten Liste?
Daten und ein next-Zeiger.
Welche Informationen werden im Activation Record gespeichert?
Eingehende Parameter, ausgehende Parameter und Statusinformationen.
p.16
Zugriff auf Listenelemente
Was ist der Zweck des 'Laufzeigers' in einer verketteten Liste?
Er dient dazu, durch die Liste zu navigieren.
Welche Vorteile bietet die Verwendung von Stapeln?
Keine Notwendigkeit, die Details der Implementierung zu kennen und einfache Implementation durch wenige unterstützte Operationen.
p.42
Einfach verkettete Liste
Was zeigt die Struktur einer verketteten Liste?
Die Elemente sind durch next- und prev-Zeiger verbunden.
p.38
Einfach verkettete Liste
Was repräsentiert 'pstart' in der verketteten Liste?
Es ist der Zeiger auf den Start der Liste.
p.12
Einfach verkettete Liste
Was ist der Zweck des 'pstart' in einer verketteten Liste?
Es ist der Zeiger auf den Start der Liste.
p.28
Einfüge- und Löschoperationen
Was ist die Funktion von 'ptemp' in der Löschoperation?
Es wird verwendet, um temporär auf das Element zuzugreifen, das gelöscht werden soll.
p.2
Einfach verkettete Liste
Was ist eine verkettete Liste?
Eine Reihe von Elementen, die in bestimmter Reihenfolge angeordnet sind.
p.68
Dynamische Speicherallokation
Was ist das Konzept von 'Call by reference'?
Es ermöglicht einer Funktion, die Werte von Variablen außerhalb ihrer eigenen Umgebung zu ändern.
Was wird in der Funktion stackinit mit dem Pseudo Kopf und Ende - Element gemacht?
head->next wird auf tail gesetzt und tail->next auf tail.
Was ist das Ziel bei der Verwendung eines Stacks in diesem Beispiel?
Die letzte gestartete Funktion zuerst zu beenden.
Welche Datenstruktur wird in diesem Beispiel verwendet?
Ein Stapel (Stack) unter Verwendung eines Feldes.
p.73
Dynamische Speicherallokation
Was wird in der Funktion list_destroy verwendet, um den Speicher zu löschen?
Eine benutzerdefinierte Funktion, die durch list->destroy angegeben wird.
Nenne ein Beispiel für die Anwendung einer Schlange.
Postschalter oder Arzt-Wartezimmer.
Wie wird das oberste Element in der 'pop'-Funktion entfernt?
Durch Setzen von head->next auf tmp->next und Freigeben von tmp.
p.35
Dynamische Speicherallokation
Was ist die Bedeutung von Listnode *pv;
Es deklariert einen Zeiger pv, der auf einen Listenknoten zeigt.
Was ist das Ziel des Beispiels mit dem arithmetischen Ausdruck?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.34
Einfüge- und Löschoperationen
Wie viele Schritte sind nötig, um ein neues Element in die verkettete Liste einzufügen?
Mindestens 3 Schritte: Element erzeugen, 'next'-Pointer setzen, und den vorherigen 'next'-Pointer aktualisieren.
p.74
Einfüge- und Löschoperationen
Wie wird der Datenzeiger in das neue Element kopiert?
Durch die Zeile new_element->data = (void *)data;
p.24
Zugriff auf Listenelemente
Wie sucht man ein bestimmtes Element in einer verketteten Liste?
Durch eine Schleife, die das aktuelle Element überprüft und zum nächsten Element wechselt, bis das gesuchte Element gefunden wird oder das Ende der Liste erreicht ist.
Wie wird der Ausdruck 5 * ( ( (9 + 8) * (4 * 6) ) + 7 ) mit Stapeln ausgewertet?
Durch die Verwendung von push( pop() + pop() ).
p.2
Komplexität von Datenstrukturen
Was ist der Unterschied zwischen einer verketteten Liste und einem Feld?
Eine verkettete Liste hat eine explizite sequentielle Anordnung, während ein Feld eine implizite sequentielle Anordnung hat.
p.68
Dynamische Speicherallokation
Was ist der Unterschied zwischen 'int *n' und 'int **n' in Funktionsparametern?
'int *n' ist ein Pointer auf einen Integer, während 'int **n' ein Pointer auf einen Pointer auf einen Integer ist.
p.65
Einfach verkettete Liste
Was speichert das Feld 'size' in der Struktur List?
Die Anzahl der Elemente in der Liste.
p.2
Einfach verkettete Liste
Warum ist die Anordnung in einer verketteten Liste explizit?
Weil die Elemente mit Hilfe von Zeigern in eine Reihenfolge gebracht werden.
p.7
Einfach verkettete Liste
Wie wird der Startzeiger in Bezug auf p gesetzt?
pstart wird auf p gesetzt.
p.24
Zugriff auf Listenelemente
Was passiert, wenn 'p à artnr != 456' wahr ist?
Die Schleife wechselt zum nächsten Element in der Liste.
p.67
Einfüge- und Löschoperationen
Was passiert, wenn das Element in list_ins_next den Wert NULL hat?
Ein neues Element wird am Anfang der Liste eingefügt.
Was wird mit dem Ausdruck 'push( pop() * pop() );' gemacht?
Die letzten beiden Werte werden multipliziert und das Ergebnis wird auf den Stack gepusht.
p.3
Zugriff auf Listenelemente
Was ist eine Schwierigkeit beim Finden eines Elements in einer einfach verketteten Liste?
Es ist schwierig, ein Element vor einem gegebenen zu finden.
p.34
Einfüge- und Löschoperationen
Wie wird der 'next'-Pointer des vorherigen Elements aktualisiert, wenn ein neues Element eingefügt wird?
Er wird auf das neue Element gesetzt.
p.24
Zugriff auf Listenelemente
Was bedeutet 'p != NULL' in der Schleife?
'p != NULL' bedeutet, dass das aktuelle Element existiert und die Suche fortgesetzt werden kann.
Welche Operation wird mit 'push( pop() + pop() );' durchgeführt?
Addition der obersten zwei Elemente des Stapels.
p.34
Einfach verkettete Liste
Was repräsentiert 'pstart' in der verketteten Liste?
Es ist der Startpunkt der Liste.
p.21
Zugriff auf Listenelemente
Was bedeutet 'next NULL' in der Datenstruktur?
Es zeigt an, dass es kein weiteres Element gibt.
p.3
Zugriff auf Listenelemente
Wie wird das k-te Element in einem Array gefunden?
Sehr einfach durch den Index.
p.68
Dynamische Speicherallokation
Was passiert, wenn eine Funktion einen Pointer auf einen Integer erhält?
Die Funktion kann den Wert der Integer-Variablen, auf die der Pointer zeigt, ändern.
p.69
Professionelle Implementierung von verketteten Listen
Welchen Nachteil haben Makros?
Sie vergrößern das Programm durch wiederholtes Einfügen gleicher Codefragmente.
p.65
Einfach verkettete Liste
Was ist die Rolle der Bibliotheksfunktion 'free' in der Struktur List?
Sie reicht für das Löschen einfacher Datenstrukturen, aber spezielle Funktionen sind für komplexere Datenstrukturen erforderlich.
p.69
Professionelle Implementierung von verketteten Listen
Wie können Makros die Programmausführung beschleunigen?
Durch Reduktion des Aufwands für häufige Funktionsaufrufe.
p.77
Zugriff auf Listenelemente
Wie zeigt das letzte echte Element in einer verketteten Liste auf das Ende-Element?
Es zeigt nur auf sich selbst.
p.77
Komplexität von Datenstrukturen
Was ist die Worst-Case-Komplexität für das Einfügen eines Elements in einfach verkettete Listen?
O(1), wenn der Zeiger auf das neue Element gesetzt wird.
p.77
Einfüge- und Löschoperationen
Warum gibt es keine Operation für einfach verkettete Listen, die das angegebene Element selbst entfernt?
Weil man den vorherigen Knoten benötigt, um den Next-Zeiger korrekt zu aktualisieren.
p.8
Einfüge- und Löschoperationen
Was passiert mit dem neuen Element, wenn es zur vorhandenen Liste hinzugefügt wird?
Es wird an die bestehende Liste angehängt.
p.7
Einfach verkettete Liste
Was passiert mit dem Zeiger p, wenn ein neues Element erstellt wird?
p à next wird auf NULL gesetzt.
p.69
Professionelle Implementierung von verketteten Listen
Warum verwendet man Makros?
Zur Verbesserung der Lesbarkeit und zur Reduktion des Aufwands für die Stack-Verwaltung.
p.72
Einfach verkettete Liste
Was bedeutet 'list à destroy = destroy;' in der Funktion?
Es weist der Liste die Funktion zu, die zum Zerstören von Daten verwendet wird.
p.30
Zugriff auf Listenelemente
Was repräsentiert 'pstart' in einer verketteten Liste?
Es ist ein Zeiger auf das erste Element der Liste.
p.3
Zugriff auf Listenelemente
Wie muss man vorgehen, um das k-te Element in einer verketteten Liste zu finden?
Man muss k Verkettungen durchlaufen.
p.24
Zugriff auf Listenelemente
Was ist die Bedeutung von 'p à next'?
'p à next' verweist auf das nächste Element in der verketteten Liste.
p.74
Einfüge- und Löschoperationen
Was passiert, wenn das Element NULL ist?
Das neue Element wird am Anfang der Liste eingefügt.
p.76
Einfüge- und Löschoperationen
Was zeigt 'data' nach dem Entfernen eines Elements?
Es zeigt auf das gerade entfernte Element.
p.72
Einfach verkettete Liste
Was wird in der Funktion 'list_init' auf NULL gesetzt?
Der Kopf (head) und der Schwanz (tail) der Liste.
Was wird in der 'pop'-Funktion zurückgegeben?
Der Wert des entfernten Knotens (tmp->key).
p.68
Dynamische Speicherallokation
Wie wird eine Funktion mit einem Pointer auf Void aufgerufen?
Mit der Adresse einer Void-Zeiger-Variablen.
p.74
Dynamische Speicherallokation
Was passiert, wenn die Speicherallokation für new_element fehlschlägt?
Die Funktion gibt -1 zurück.
Wie wird ein neuer Knoten in der 'push'-Funktion erstellt?
tmp = (struct node *) malloc(sizeof *tmp);
p.71
Einfach verkettete Liste
Was überprüft das Makro 'list_is_head'?
Ob ein Element der Kopf der Liste ist.
Was bedeutet die Funktion pop() in Bezug auf den Stapel?
Sie entfernt das oberste Element vom Stapel und gibt es zurück.
Wie wird die Multiplikation im Beispiel durchgeführt?
Durch die Operation push( pop() * pop() );
Was wird mit den Werten 9 und 8 im Beispiel gemacht?
Sie werden addiert: push( pop() + pop() );
p.22
Zugriff auf Listenelemente
Was ist die Funktion der while-Schleife im Kontext der verketteten Liste?
Sie durchläuft die Liste, bis das Ende erreicht ist.
Was ist das Ziel des Beispiels mit dem arithmetischen Ausdruck?
Die Auswertung eines arithmetischen Ausdrucks mit Addition und Multiplikation.
p.30
Dynamische Speicherallokation
Was ist der Zweck von 'free(ptemp)'?
Es gibt den Speicher, der von 'ptemp' belegt wird, wieder frei.
Was macht die Funktion 'push' in der Stapel-Implementierung?
Sie fügt ein neues Element oben auf den Stapel hinzu.
p.2
Komplexität von Datenstrukturen
Warum ist die Anordnung in einem Feld implizit?
Weil die Reihenfolge nur durch die Position im Speicher festgelegt ist.
Was bedeutet die Funktion 'push(5)' im Kontext von Stapeln?
Die Zahl 5 wird auf den Stapel gelegt.
Was ist der Zweck der 'push'-Operation?
Ein Element auf den Stapel zu legen.
p.67
Einfüge- und Löschoperationen
Was macht die Funktion list_rem_next?
Sie entfernt das auf ein gegebenes Element folgende Objekt aus der Liste.
p.74
Einfüge- und Löschoperationen
Was wird gemacht, wenn das Element nicht NULL ist?
Das neue Element wird irgendwo anders als am Anfang eingefügt.
p.74
Dynamische Speicherallokation
Warum ist ein Cast notwendig für data?
Weil data vom Typ (const void *) ist.
p.22
Zugriff auf Listenelemente
Was zeigt der Laufzeiger p an, wenn die Schleife endet?
p zeigt auf das letzte Element der Liste.
p.76
Dynamische Speicherallokation
Wer ist verantwortlich für die Verwaltung des mit den entfernten Daten verknüpften Speichers?
Der Aufrufer der Funktion.
p.71
Einfach verkettete Liste
Was definiert das Makro 'list_size'?
Es gibt die Größe der Liste zurück.
Welcher arithmetische Ausdruck wird in dem Beispiel ausgewertet?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.71
Einfach verkettete Liste
Was gibt das Makro 'list_tail' zurück?
Es gibt das Ende der Liste zurück.
Was bewirken die 'pop'-Operationen im Beispiel?
Sie entfernen und geben das oberste Element des Stapels zurück.
p.22
Zugriff auf Listenelemente
Wie kann man auf die Elemente einer verketteten Liste zugreifen?
Indem man einen 'Laufzeiger' bis zum Ende der Liste laufen lässt.
Wie lautet der arithmetische Ausdruck, der ausgewertet werden soll?
5 * ( ( (9 + 8) * (4 * 6) ) + 7 ).
p.65
Einfach verkettete Liste
Wofür wird der Funktionszeiger 'match' verwendet?
Zum Vergleichen zweier Schlüssel.
Was passiert, wenn 'push( pop() * pop() );' aufgerufen wird?
Multiplikation der obersten zwei Elemente des Stapels.
p.71
Einfach verkettete Liste
Was gibt das Makro 'list_head' zurück?
Es gibt den Kopf der Liste zurück.
p.77
Einfüge- und Löschoperationen
Wie können Pseudoknoten 'Kopf' und 'Ende' die Einfüge- und Löschprozedur vereinfachen?
Kopf und Ende sind extra Elemente ohne Inhalt; der Next-Zeiger des Kopf-Elements zeigt auf das erste echte Element, und das letzte echte Element zeigt auf das Ende-Element, welches nur auf sich selbst zeigt.
p.65
Einfach verkettete Liste
Was zeigen die Zeiger 'head' und 'tail' in der Struktur List?
Der Zeiger 'head' zeigt auf das erste Element und 'tail' auf das letzte Element der Liste.
p.71
Einfach verkettete Liste
Was gibt das Makro 'list_data' zurück?
Die Daten eines Elements.
p.71
Einfach verkettete Liste
Was gibt das Makro 'list_next' zurück?
Das nächste Element in der Liste.
p.65
Einfach verkettete Liste
Wofür wird der Funktionszeiger 'destroy' verwendet?
Zum Vernichten einer Liste.
p.67
Dynamische Speicherallokation
Was muss der Aufrufer sicherstellen, wenn er list_ins_next verwendet?
Der Speicher muss gültig bleiben, solange das Element in der Liste verbleibt.
Was passiert mit dem Wert 7 im Beispiel?
Er wird auf den Stack gepusht.
p.67
Einfüge- und Löschoperationen
Was zeigt der Parameter data in list_rem_next nach dem Entfernen eines Elements?
Er zeigt auf das gerade entfernte Element.
p.67
Dynamische Speicherallokation
Was bedeutet 'Call by reference' in Bezug auf den Parameter data?
Es ermöglicht, den Wert des Zeigers in der Funktion zu ändern.
Was passiert bei 'push( pop() + pop() )'?
Die obersten zwei Elemente werden addiert und das Ergebnis wird auf den Stapel gelegt.
Was bedeutet die Funktion push() in Bezug auf den Stapel?
Sie fügt ein Element oben auf den Stapel hinzu.
p.71
Einfach verkettete Liste
Was überprüft das Makro 'list_is_tail'?
Ob das nächste Element NULL ist.
Wie wird der Wert 7 im Beispiel verwendet?
Er wird auf den Stapel gepusht und dann addiert.
Was passiert nach dem push( pop() * pop() );?
Die Multiplikation der obersten beiden Werte auf dem Stack.
p.77
Zugriff auf Listenelemente
Was zeigt der Next-Zeiger des Kopf-Elements in einer verketteten Liste?
Er zeigt auf das erste echte Element der Liste.
p.74
Einfüge- und Löschoperationen
Was geschieht, wenn die Liste leer ist?
Das neue Element wird sowohl Kopf als auch Schwanz der Liste.
Was wird mit dem Wert 7 im Stack gemacht?
Er wird ebenfalls gepusht und dann in Berechnungen verwendet.
p.77
Komplexität von Datenstrukturen
Was ist die Worst-Case-Komplexität für das Auffinden eines Elements in einfach verketteten Listen?
O(n), da man möglicherweise die gesamte Liste durchsuchen muss.
p.67
Einfüge- und Löschoperationen
Was passiert, wenn das Element in list_rem_next den Wert NULL hat?
Der Kopf der Liste wird entfernt.
p.77
Komplexität von Datenstrukturen
Was ist die Worst-Case-Komplexität für das Einfügen eines Elements in Arrays?
O(n), da möglicherweise alle Elemente verschoben werden müssen.
Wie wird die Addition im Beispiel durchgeführt?
Durch die Operation push( pop() + pop() );
p.22
Zugriff auf Listenelemente
Was bedeutet 'next NULL' in einer verketteten Liste?
Es zeigt an, dass es kein weiteres Element gibt.