Mindmap-Galerie „Datenstruktur“ Kapitel 2 – Lineare Tabelle
Kapitel 2 von „Datenstruktur“ – Sortierung des Wissens über lineare Tabellen, einschließlich ihrer Definition und Grundoperationen, sequentiellen Darstellung und Kettendarstellung.
Bearbeitet um 2022-11-23 16:06:11Welche Preismethoden gibt es für Projektunteraufträge im Rahmen des EPC-Generalvertragsmodells? EPC (Engineering, Procurement, Construction) bedeutet, dass der Generalunternehmer für den gesamten Prozess der Planung, Beschaffung, Konstruktion und Installation des Projekts verantwortlich ist und für die Testbetriebsdienste verantwortlich ist.
Die Wissenspunkte, die Java-Ingenieure in jeder Phase beherrschen müssen, werden ausführlich vorgestellt und das Wissen ist umfassend. Ich hoffe, es kann für alle hilfreich sein.
Das Software-Anforderungs-Engineering ist ein Schlüsselkapitel für Systemanalytiker. Zu den Kapiteln „Anforderungserhebung“ und „Anforderungsanalyse“ gehören häufig Veröffentlichungen.
Welche Preismethoden gibt es für Projektunteraufträge im Rahmen des EPC-Generalvertragsmodells? EPC (Engineering, Procurement, Construction) bedeutet, dass der Generalunternehmer für den gesamten Prozess der Planung, Beschaffung, Konstruktion und Installation des Projekts verantwortlich ist und für die Testbetriebsdienste verantwortlich ist.
Die Wissenspunkte, die Java-Ingenieure in jeder Phase beherrschen müssen, werden ausführlich vorgestellt und das Wissen ist umfassend. Ich hoffe, es kann für alle hilfreich sein.
Das Software-Anforderungs-Engineering ist ein Schlüsselkapitel für Systemanalytiker. Zu den Kapiteln „Anforderungserhebung“ und „Anforderungsanalyse“ gehören häufig Veröffentlichungen.
linearer Tisch
Definition und grundlegende Operationen
Definition
Eine lineare Tabelle ist eine endliche Folge von n Datenelementen desselben Datentyps
a1 ist das Header-Element
an ist das Tabellenelement
Jedes Element außer dem ersten Element hat einen und nur einen direkten Vorgänger; jedes Element außer dem letzten Element hat einen und nur einen direkten Nachfolger.
Merkmale
Die Anzahl der Elemente in der Tabelle ist begrenzt
Die Elemente in der Tabelle haben eine logische Reihenfolge. Die Elemente in der Tabelle haben ihre Reihenfolge.
Die Elemente in der Tabelle sind alle Datenelemente und jedes Element ist ein einzelnes Element
Die Datentypen der Elemente in der Tabelle sind alle gleich, was bedeutet, dass jedes Element den gleichen Speicherplatz belegt
Die Elemente in der Tabelle sind abstrakt, das heißt, es wird nur die logische Beziehung zwischen den Elementen diskutiert, ohne zu berücksichtigen, was die Elemente tatsächlich darstellen.
Grundlegende Operationen linearer Tabellen
InitList(&): Initialisierungsliste. Konstruieren Sie eine leere lineare Tabelle
Länge (L): Ermitteln Sie die Länge der Tabelle. Gibt die Länge der linearen Tabelle L zurück, also die Anzahl der Datenelemente in L
LocateElem(L,e): Operation nach Wert suchen. Suchen Sie in Tabelle L nach Elementen mit dem angegebenen Schlüsselwert
GetElem(L,i): Bitweise Suchoperation. Ermitteln Sie den Wert des Elements an Position i in der Tabelle
ListInsert (&L,i,e): Einfügevorgang. Fügen Sie das angegebene Element e an der i-ten Position in Tabelle L ein
ListDelete(&L,i,&e): Löschvorgang. Löschen Sie das Element an der i-ten Position in der Tabelle und geben Sie mit e den Wert des gelöschten Elements zurück
PrintList(L): Ausgabevorgang. Geben Sie alle Elementwerte der linearen Tabelle in sequentieller Reihenfolge aus
Leer (L): Leerer Vorgang. Wenn der Job eine leere Tabelle ist, geben Sie „true“ zurück, andernfalls geben Sie „false“ zurück
DestroyList(&L): Zerstörungsvorgang. Zerstören Sie die lineare Tabelle und geben Sie den von der linearen Tabelle L belegten Speicherplatz frei
sequentielle Darstellung
Definition
Die sequentielle Speicherung einer linearen Tabelle verwendet eine Reihe von Speichereinheiten mit aufeinanderfolgenden Adressen, um die Datenelemente in der linearen Tabelle sequentiell zu speichern, sodass zwei logisch benachbarte Elemente auch physisch benachbart sind.
Merkmale
Direktzugriff
Das angegebene Element kann in der Zeit O(1) über die erste Adresse und Elementnummer gefunden werden.
Hohe Speicherdichte, jeder Knoten speichert nur Datenelemente
Die logische Reihenfolge der Elemente in einer Tabelle ist dieselbe wie ihre physische Reihenfolge, sodass Einfüge- und Löschvorgänge das Verschieben einer großen Anzahl von Elementen erfordern
Grundoperationen
(1) einfügen
Zeitkomplexität: O(n)
(2) löschen
Zeitkomplexität: O(n)
(3) Nach Wert suchen (sequentielle Suche)
Zeitkomplexität: O(n)
Kettendarstellung
Definition einer einfach verknüpften Liste
Speichern Sie Datenelemente in einer linearen Tabelle über einen beliebigen Satz von Speichereinheiten
Für jeden verknüpften Listenknoten muss zusätzlich zur Speicherung der Elementinformationen auch ein Zeiger auf seinen Nachfolger gespeichert werden.
Fügen Sie vor dem ersten Knoten der einfach verknüpften Liste einen Knoten hinzu, der als Kopfknoten bezeichnet wird. Sein Datenfeld enthält keine Informationen und der Zeiger zeigt auf den ersten Elementknoten der linearen Liste.
Grundlegende Operationen einer einfach verknüpften Liste
Erstellen Sie eine einfach verknüpfte Liste mit der Kopfeinfügungsmethode
Die Reihenfolge der Knoten in der generierten verknüpften Liste stimmt nicht mit der Reihenfolge der Eingabedaten überein.
Zeitkomplexität: O(n)
Erstellen Sie eine einfach verknüpfte Liste mit der Tail-Insertion-Methode
Führen Sie den Endzeiger r ein, der immer auf den Endknoten der aktuellen verknüpften Liste zeigt
Zeitkomplexität: O(n)
Finden Sie den Knotenwert anhand der Seriennummer
Zeitkomplexität: O(n)
Suchen Sie Tabellenknoten nach Wert
Zeitkomplexität: O(n)
Knotenoperation einfügen
Zeitkomplexität
Einfügen nach einem bestimmten Knoten: O(1)
Ansonsten ist O(n)
Vorwärtseinfügungsvorgang
Angenommen, der einzufügende Knoten ist s, und fügen Sie ihn vor dem Knoten p ein: s kann zuerst nach p eingefügt werden, und dann werden p->data und s->data ausgetauscht. Die Zeitkomplexität beträgt nur O(1).
Knoten löschen
Zeitkomplexität: O(1)
Erweiterter Ansatz: Um den Knoten p zu löschen, können Sie zunächst den Wert seines Nachfolgeknotens sich selbst zuweisen und dann den Nachfolgeknoten löschen. Die Zeitkomplexität beträgt nur O (1).
Operation zum Ermitteln der Tabellenlänge
Zeitkomplexität: O(n)
Doppelt verknüpfte Liste
Die zeitliche Komplexität des Zugriffs auf den Vorgängerknoten einer einzelnen verknüpften Liste beträgt O(n). Aus diesem Grund wird eine doppelt verknüpfte Liste eingeführt. Jeder Knoten verfügt über zwei Zeiger, den Vorgänger und den Nachfolger.
Einfügevorgang
Vorgang löschen
zirkuläre verknüpfte Liste
Zirkuläre einfach verknüpfte Liste
Der Zeiger des letzten Knotens in der Tabelle ist nicht NULL, sondern zeigt auf den Kopfknoten.
Der Rest ist derselbe wie bei einer einfach verknüpften Liste
Zirkuläre doppelt verkettete Liste
Der vorherige Zeiger des Kopfknotens zeigt auf den Endknoten der Liste. Wenn die verknüpfte Liste eine leere Liste ist, sind das vorherige Feld und das nächste Feld des Kopfknotens beide gleich L
statische verknüpfte Liste
Verwenden Sie Arrays, um die verknüpfte Speicherstruktur linearer Listen zu beschreiben
Der Zeiger ist die relative Adresse des Knotens (Array-Index), auch Cursor genannt
Verwenden Sie next==-1 als Endmarke
Vergleich von Sequenzliste und verknüpfter Liste
Zugriffsmethoden (Lesen und Schreiben).
Sequenztabelle: Auf sie kann sequentiell oder zufällig zugegriffen werden
Verknüpfte Liste: Auf Elemente kann nur sequentiell vom Kopf der Liste aus zugegriffen werden
Logische Struktur und physische Struktur
Suchen, Einfügen und Löschen von Elementoperationen
Raumaufteilung
Der sequentielle Speicher lässt sich nur schwer erweitern, wenn statischer Speicher zugewiesen wird; die dynamische Speicherzuweisung verringert die Betriebseffizienz