MindMap Gallery Datenstruktur-Mindmap
Dabei handelt es sich um eine Mindmap über die Datenstruktur, die auf einem bestimmten Medium gespeichert ist und die als Informationsträger dienen kann. Diese Symbole können Zahlen, Symbole usw. sein. oder andere,
Edited at 2023-12-02 14:20:48Welche 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.
Datenstruktur
Einführung
Daten
Definition
Physische Symbole, die auf einem bestimmten Medium gespeichert sind und erkannt werden können, sind Informationsträger. Diese Symbole können Zahlen, Symbole oder andere sein
bilden:
Daten
Datenelement
Datenelement
Die kleinste Einheit, aus der Daten bestehen
Grundeinheit der Daten
logische Struktur
Beziehungen zwischen Datenelementen
Struktur festlegen
Gehören zur gleichen Sammlung
lineare Struktur
Eins zu eins
Lineare Liste, Heap, Stack
Baumstruktur
eins zu viele
Diagrammstruktur
viel zu viel
Speicherstruktur
Sequentielle Speicherstruktur
Kettenspeicherstruktur
Indexspeicherstruktur
Hash-Speicherstruktur
Algorithmus
Definition
Eine Beschreibung spezifischer Schritte zur Lösung eines bestimmten Problems, eine endliche Folge von Anweisungen
fünf Grundeigenschaften
Endlichkeit
Muss nach der Ausführung einer begrenzten Anzahl von Schritten beendet werden
Sicherheit
Durchführbarkeit
Jeder Rechenschritt kann in grundlegende ausführbare Betriebsschritte zerlegt werden, wobei jeder Schritt innerhalb einer begrenzten Zeit abgeschlossen werden kann
eingeben
Ein Algorithmus kann 0 oder mehr Eingaben haben
Ausgabe
Ein Algorithmus hat eine oder mehrere Ausgaben
Allgemeine Gestaltungsregeln
Richtigkeit
Lesbarkeit
Robustheit
Reagieren Sie angemessen auf falsche Eingaben
Hohe Effizienz und geringes Lagervolumen
Die Komplexität
lineare Struktur
linearer Tisch
Zeitkomplexität
Sequenztabellensuche nach Wert
n 1/2
Einfügen einer Sequenztabelle
An)
löschen
An)
Stapel
zuletzt rein, zuerst raus
Definition
oben auf dem Stapel
Bedienterminal
Boden des Stapels
Festes Ende
Sequenzstapel
top=-1 ist ein leerer Stapel
top=MAXSIZE-1 bedeutet voller Stapel
Stapelkettenspeicher
Ähnlich einer einfach verknüpften Liste
Warteschlange
als Erster rein, als erster raus
Definition
Ende der Warteschlange
Einfügen zulassen
Teamleiter
Löschen zulassen
sequentielle Warteschlange
kreisförmige Warteschlange
Lassen Sie einen Platz ungenutzt
Der Satz ist vollständig
(hinten 1)%MAXQUEUE==vorne
vorne == hinten
Nennen wir es kurz
verlinkte Liste
Einzelne verknüpfte Liste ohne Kopfknoten
Vorgänge, die den Hauptknoten betreffen, erfordern eine besondere Behandlung
Einfach verknüpfte Liste mit Kopfknoten
Der Kopfzeiger ist nicht null
Zirkuläre einfach verknüpfte Liste
Das Zeigerfeld des letzten Knotens speichert die Adresse des ersten Knotens und bildet einen Ring.
Die Abbruchoperation in der Operation bestimmt, ob es sich um den Kopfzeiger handelt
Doppelt verknüpfte Liste
Es gibt Vorgänger und Nachfolger
Array
Berechnung der Speicheradresse
Basisadresse (i 1)*n (j-1)
Methode finden
Sequentielle Suche
Traverse
Durchschnittliche Suchlänge=n 1/2
Indexsuche
Indexeintrag erstellen
Schlüsselwortelemente
Block
Zeigerelement
Durchschnittliche Suchlänge = (n/s s)/2 1
n ist die Tabellenlänge, gleichmäßig in b Blöcke unterteilt, jeder Block enthält s Datensätze
Hash-Suche
Methode zum Aufbau einer Hash-Funktion
direkte Hash-Funktion
Nehmen Sie als Adresse das Schlüsselwort selbst oder eine lineare Funktion des Schlüsselworts
Größe des Adresssatzes == Größe des Schlüsselwortsatzes
Numerische Analyse-Hash-Funktion
Finden Sie die Mitte des Quadrats
Faltmethode
Schichtfalte
Grenzkollaps
Bis auf den Rest
H=Taste mod p
Nimm die Primzahl
Zufallszahlenmethode
Analyse der Hash-Lookup-Leistung
Faktor
Hash-Funktion
Denken Sie grundsätzlich nicht darüber nach
Methoden zur Konfliktbearbeitung
Offenes Adressgesetz
Lineares Sondieren und anschließendes Hashing
1, 2, 3,. . verschieben
(1 1/1-α )/2
Zweite Erkennung und dann Hashing
Positive und negative Zahlenquadratverzögerung
ln(1-α)/α
Pseudozufälliges Sondieren und anschließendes Hashing
Pseudozufallsfolge
ln(1-α)/α
aufwärmen
ln(1-α)/α
Kettenadressmethode
Widersprüchliche Datensätze werden in derselben linear verknüpften Liste gespeichert
1 α/2
öffentlicher Überlaufbereich
Ein anderer Vektor sei die Überlauftabelle
Füllfaktor der Hash-Tabelle
α = Anzahl der in der Tabelle gefüllten Datensätze/Hash-Tabellenlänge
Die durchschnittliche Suchlänge einer Hash-Tabelle ist eine Funktion von α, nicht eine Funktion von n
Voraussetzung: Daten werden gleichmäßig geladen
Sortieren
stabile Sortierung
Die relative Position der Schlüsselwortdaten bleibt vor und nach der Sortierung unverändert
direkt einfügen
In zwei Teile geteilt, ist die linke Seite geordnet und die rechte Seite ungeordnet. Das erste Element auf der rechten Seite wird an der entsprechenden Position auf der linken Seite eingefügt.
O (Quadrat)
Stabilisieren
Hill-Sorte
Gemäß einem festen Intervall werden die durch d getrennten Teile in dieselbe Gruppe unterteilt, und innerhalb derselben Gruppe wird Einfügung oder binäre Sortierung verwendet.
Zum ersten Mal abgeschlossen, reduzieren Sie das Intervall auf eine Gruppe und sortieren Sie es dann
bis das Intervall 1 ist
instabil
Blasensortierung
Vergleichen Sie n-i 1 Elemente der Reihe nach von links nach rechts
Stabilisieren
Quadrat/2
Einfache Wahl
Nehmen Sie den Maximalwert aus der ungeordneten Folge und fügen Sie ihn am Ende der geordneten Folge hinzu
Quadrat
Stabilisieren
Radix-Sortierung
Sortierung nach mehreren Schlüsselwörtern
Reihenfolge mehrerer Schlüsselwörter
hohe Priorität
Little Endian
Schnelle Sorte
Teilen Sie die Sequenz in zwei Teile (erforderlich, um das relative Größenverhältnis sicherzustellen)
Rekursion in zwei Teilsequenzen zur schnellen Sortierung
Eine Zusammenführung ist nicht erforderlich, da das Array zu diesem Zeitpunkt vollständig geordnet ist
nlogn
Aber wenn die Folge selbst geordnet ist, degeneriert sie ins Quadrat
Zusammenführen, sortieren
Teilen Sie die zu sortierende Sequenz in mehrere Teilsequenzen auf, und jede Teilsequenz ist eine geordnete Sequenz. Fügen Sie dann die geordneten Teilsequenzen zur geordneten Gesamtsequenz zusammen
Ein Baum ist eine endliche Menge von n (n>=0) Knoten. Wenn n=0, spricht man von einem leeren Baum. In jedem nicht leeren Baum gibt es nur einen bestimmten Knoten namens Wurzel. Wenn n>1 ist, können die verbleibenden Knoten in m (m>0) disjunkte endliche Mengen unterteilt werden, von denen jede selbst ein Baum ist und als Teilbaum der Wurzel (SubTree) bezeichnet wird.
Bäume haben folgende Eigenschaften:
1. Die Teilbäume sind disjunkt.
2. Mit Ausnahme des Wurzelknotens hat jeder Knoten nur einen übergeordneten Knoten.
3. Ein Baum mit N Knoten hat N-1 Kanten.
Der Grad eines Baums bezieht sich auf den maximalen Grad aller Knoten im Baum, und der Blattknoten bezieht sich auf den Knoten mit Grad 0. Die Tiefe eines Baums bezieht sich auf die größte Ebene aller Knoten im Baum. Es gibt höchstens 2^(i-1) Knoten (i≥1) auf der i-ten Ebene des Binärbaums, und der Binärbaum mit der Tiefe k hat höchstens 2^k-1 Knoten (k≥1).
Rekursion und Teile und herrsche
Rekursion
Definition
Rufen Sie sich direkt oder indirekt an
Szenen, die verwendet werden sollen
Die Definition ist rekursiv
Fakultät von n, Fibonacci-Folge
Datenstrukturen sind rekursiv
verlinkte Liste
Teile und herrsche
Teile und herrsche
Szenen, die verwendet werden sollen
Kleiner Maßstab, leicht zu lösen
Das Problem lässt sich in gleichartige Teilprobleme mit optimaler Unterstruktur zerlegen
Die Lösung des ursprünglichen Problems kann durch Zusammenführen von Teilproblemen erhalten werden
Teilprobleme sind unabhängig
Zeitkomplexität des Algorithmus
Iterative Methode
Direkt erweitern
rekursive Baummethode
Hauptmethode
Baum
Binärbaum
Konzept
Ausgeben
Die Anzahl der Teilbäume, die dem Knoten gehören
Blatt
Knoten mit Grad 0
Kind
Die Wurzel des Knotenteilbaums
Eltern
Der obere Knoten des untergeordneten Knotens
Vorfahr
Alle Knoten auf den Zweigen vom Wurzelknoten zu diesem Knoten
Knotenebene
Ausgehend vom Wurzelknoten ist die Wurzel die erste Ebene
Grad des Binärbaums
Maximaler Knotengrad
Tiefe des Binärbaums
Die maximale Anzahl von Knotenebenen
besonders
vollständiger Binärbaum
Alle Zweigknoten haben einen linken Teilbaum und einen rechten Teilbaum
Alle Blätter und alle Blattknoten liegen auf derselben Ebene
vollständiger Binärbaum
Ein Binärbaum, in dem jede Ebene außer der letzten vollständig gefüllt ist. Die Knoten der letzten Schicht konzentrieren sich kontinuierlich auf der linken Seite.
Ein vollständiger Binärbaum muss ein vollständiger Binärbaum sein, und ein vollständiger Binärbaum darf kein vollständiger Binärbaum sein.
Natur
1. In einem nicht leeren Binärbaum überschreitet die Gesamtzahl der Knoten auf der i-ten Ebene nicht i>=1.
2. Ein Binärbaum mit der Tiefe h hat höchstens 2^h - 1 Knoten (h>=1) und mindestens h Knoten.
3. Wenn für jeden Binärbaum die Anzahl der Blattknoten N0 und die Gesamtzahl der Knoten mit Grad 2 N2 beträgt, dann ist N0 = N2 1.
4. Die Tiefe eines vollständigen Binärbaums mit n Knoten beträgt logn 1
Traverse
Unter Binärbaumdurchquerung versteht man den Besuch jedes Knotens des Binärbaums nach bestimmten Regeln, sodass jeder Knoten nur einmal besucht wird. Es gibt drei Hauptmethoden zum Durchlaufen eines Binärbaums: Durchqueren vor der Bestellung, Durchlaufen in der Reihenfolge und Durchlaufen nach der Bestellung.
1. Durchquerung vorbestellen:
* Greifen Sie auf den Wurzelknoten zu
* Durchquerung des linken Teilbaums vorbestellen
* Vorbestellung durchläuft den rechten Teilbaum
2. Inorder-Traversal:
* Durchqueren des linken Teilbaums in der richtigen Reihenfolge
* Greifen Sie auf den Wurzelknoten zu
* Durchqueren Sie der Reihe nach den rechten Teilbaum
3. Postorder-Traversal:
* Post-Order-Durchquerung des linken Teilbaums
* Post-Order-Durchquerung des rechten Teilbaums
* Greifen Sie auf den Wurzelknoten zu
Durchlaufen Sie die Anwendung
Erstellen Sie einen Binärbaum aus Vorbestellungs- und In-Order-Traversalsequenzen
Vorbestellung und Nachbestellung können keinen Binärbaum erstellen
Finden Sie die Tiefe eines Binärbaums
Das Folgende ist ein Pseudocode-Beispiel, das Rekursion verwendet, um die Tiefe eines Binärbaums zu ermitteln:
„
Funktion TreeDepth(root):
wenn root null ist:
0 zurückgeben
anders:
leftDepth = treeDepth(root.left)
rightDepth = treeDepth(root.right)
return max(leftDepth, rightDepth) 1
„
In diesem Pseudocode stellt „root“ den Wurzelknoten des Binärbaums dar. Wenn der Wurzelknoten leer ist, ist die zurückgegebene Tiefe 0; andernfalls wird die Tiefe des linken Teilbaums und des rechten Teilbaums rekursiv berechnet, wobei der größere der beiden plus 1 als Tiefe des aktuellen Teilbaums und die maximale Tiefe verwendet wird wird als Ergebnis zurückgegeben.
Binärer Sortierbaum
einfügen
ausgeglichener Binärbaum
Der Tiefenunterschied zwischen dem linken und dem rechten Teilbaum jedes Knotens überschreitet nicht 1
Konvertieren Sie einen binär sortierten Baum in einen ausgeglichenen Binärbaum
Linke Einzelrotation RR
Fügen Sie einen Knoten in den rechten Teilbaum des rechten untergeordneten Knotens ein
Rechte Einzelrotation LL
Fügen Sie einen Knoten in den linken Teilbaum des linken untergeordneten Knotens ein
Drehen Sie LR in beide Richtungen, zuerst nach links und dann nach rechts
Fügen Sie einen Knoten in den rechten Teilbaum des linken untergeordneten Knotens ein
Drehen Sie RL in beide Richtungen, zuerst nach rechts und dann nach links
Fügen Sie einen Knoten in den linken Teilbaum des rechten untergeordneten Knotens ein
Optimaler Binärbaum (Huffman-Baum)
Binärbaum mit der kürzesten gewichteten Pfadlänge
Huffman-Baumkonstruktion
Wählen Sie die kleinste Gewichtskombination aus dem Wurzelknoten aus, um eine neue Wurzel zu generieren.
Huffman-Codierung
Links 0 Rechts 1
Konvertierung von Baum zu Binärbaum
Zeile hinzufügen
Bruderknoten sind durch Linien verbunden
Online gehen
Behalten Sie die Verbindung zwischen den Eltern und dem Kind ganz links bei und entfernen Sie die anderen
Haufen
1. Max. Heap: Ein Heap, bei dem jeder Knoten größer oder gleich seinen untergeordneten Knoten ist, wird als Max. Heap bezeichnet.
2. Minimaler Heap: Ein Heap, bei dem jeder Knoten kleiner oder gleich seinen untergeordneten Knoten ist, wird als minimaler Heap bezeichnet.
Heap-Einfügung
Bild
vollständige Grafik
Für einen gerichteten Graphen mit n Knoten
Anzahl der Kanten n(n-1)
Gerichteter vollständiger Graph
Anzahl der Kanten n(n-1)/2
ungerichteter vollständiger Graph
Basiskonzept
Ausgeben
Grad
aus Grad
Anzahl der Seiten == Summe der Grad/2
Weg
einfacher Weg
Übergeben Sie jeden Scheitelpunkt höchstens einmal
Die Länge eines Pfades ist die Anzahl der Kanten, die er enthält
Ring (Schleife)
verbundener Graph
Stark verbundener Graph
In einem gerichteten Graphen gibt es einen Pfad zwischen zwei beliebigen Knoten
Stark verbundene Komponente
Sequentielle Speicherstruktur
Adjazenzmatrix
Korrelationsmatrix
Kettenspeicherstruktur
Adjazenzliste
inverse Adjazenzliste
vernetzte Liste
tialvex
Kopfvex
Hlink
Tlink
Adjazenz-Mehrfachliste
Ungerichteter Graph
Ivertex
Ich verbinde
Jvertex
Jlink
Traverse
Tiefe zuerst
Breite zuerst
Spannbaum
Merkmale
Ein vollständiger Graph mit n Eckpunkten hat n (n-2) verschiedene Spannbäume.
minimaler Spannbaum
Prims Algorithmus
Wählen Sie eine Seite
Wählen Sie die kleinste neue Kante für die bekannten verbundenen Komponenten
Kruskals Algorithmus
Wählen Sie Kanten basierend auf Kantengewichten aus
Wenn eine bestimmte Kante eine Schleife bildet, verwerfen Sie sie
Gieriger Algorithmus
gewichteter kürzester Weg
Dijkstras Algorithmus
Aufgeteilt in zwei Punktmengen
Der kürzeste Weg wurde gefunden
Unbestimmt
topologische Sortierung
Es darf keine Schleife vorhanden sein
Kritischer Pfad
Die früheste Startzeit des Punktes auf dem Pfad == die späteste Startzeit
dynamische Programmierung