Mindmap-Galerie [Studiennotizen] Datenstrukturbaum
Etwas Wissen über Bäume in Datenstrukturen, einschließlich Huffman-Bäumen, Baumtabellensuche, binären Hinweisbäumen, Binärbaum-Traversalmethoden und minimal aufspannenden Bäumen.
Bearbeitet um 2023-07-05 11:27:01Welche 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.
Baum
Huffman-Baum
Gewichtete Pfadlänge WPL
Angenommen, ein Binärbaum hat n gewichtete Blattknoten, dann wird die Summe der Pfadlänge vom Wurzelknoten zu jedem Blattknoten und das Produkt des entsprechenden Knotengewichts als gewichtete Pfadlänge WPL (gewichtete Pfadlänge) des Binärbaums bezeichnet . .
Dieselben Blattknoten konstruieren unterschiedliche Binärbäume
Die Blattknoten mit größeren Gewichten liegen näher an der Wurzel und desto kleiner ist der Wert von wpl.
Definition
Der Binärbaum mit der minimal gewichteten Pfadlänge wird Huffman-Baum (auch optimaler Baum genannt) genannt.
Wie konstruieren?
grundsätzlich
Die Blattknoten mit größeren Gewichten liegen näher am Wurzelknoten.
Je kleiner das Gewicht, desto weiter ist der Blattknoten vom Wurzelknoten entfernt.
Finden Sie den kleinen Wert (die synthetisierten Knoten müssen auch miteinander verglichen werden)
Verfahren
Es gibt keine Blattknoten mit Gewichten
Anwendung
Huffman-Kodierung (Präfixkodierung)
Merkmale der Huffman-Codierung: Je größer das Gewicht, desto kürzer der Zeichencode und umgekehrt.
Bei der Huffman-Kodierung eines Zeichensatzes ist es unmöglich, dass die Huffman-Kodierung eines Zeichens das Präfix der Huffman-Kodierung eines anderen Zeichens ist.
Anwendung
Zeichenkodierung
Maschinenanleitung
Baumtabellensuche
Binärer Sortierbaum
left<root<right
Ausgeglichener Binärbaum AVL
Eine verbesserte Version des binären Sortierbaums (ein spezieller binärer Sortierbaum). Versuchen Sie, den Baum so kurz wie möglich zu halten!
Wie erkennt man, ob ein Baum normal wächst?
Ausgleichsfaktor = Höhe des linken Teilbaums – Höhe des rechten Teilbaums
Binärer Sortierbaum mit Balancefaktor <= 1
Balancieren Sie die maximale Tiefe und die minimale Anzahl von Knoten eines Binärbaums
B-Baum (eine Erweiterung des ausgeglichenen Binärbaums)
einfügen
Das Erstellen eines B-Baums ist ein Prozess kontinuierlicher Einfügevorgänge
Hinweis Binärbaum
Die Bedingungen für das linke leere Kettenfeld: Es befindet sich am äußersten linken Ende der Sequenz und der ursprüngliche linke Zeiger ist leer.
Die Bedingungen für die Domäne der rechten leeren Kette: Sie befindet sich am rechten Ende der Sequenz und der ursprüngliche rechte Zeiger ist leer.
Binärbaum-Traversal-Methode
für Wurzelknoten
Prolog
root-links-rechts
mittlerer Ordnung
links-wurzel-rechts
Nachwort
Links-Rechts-Wurzel
Ebene
Zeile für Zeile durchlaufen
minimaler Spannbaum
Prims Algorithmus
Erfordern
Das Gewicht ist am kleinsten und kann keinen Kreislauf bilden.
Für Fragen mit wenigen Knoten
Die Kernschritte des Prime-Algorithmus sind: In einem gewichteten verbundenen Diagramm ist V eine Menge, die alle Scheitelpunkte enthält. U ist bereits ein Knoten im minimalen Spannbaum, beginnend mit jedem Scheitelpunkt v im Diagramm ={v}, Wiederholen Sie die folgenden Operationen: Finden Sie eine Kante mit dem kleinsten Gewicht unter allen Kanten (u,w)∈E aller u∈U,w∈V-U und fügen Sie die Kante (u,w) zur Menge hinzu Kanten gefunden. Und Punkt w zur Menge U hinzufügen. Wenn U=V, wird der minimale Spannbaum gefunden.
Kruskal-Algorithmus
Bestimmen Sie zunächst die Knoten und wählen Sie der Reihe nach diejenigen mit den kürzesten Pfaden aus.
Es kann kein Ring gebildet werden
Für Fragen mit wenigen Seiten
Grundidee: kantengeführt. In einem gewichteten zusammenhängenden Graphen ist U die Menge aller Kanten, N die Anzahl der Eckpunkte und SU die Menge der Kanten, die sich bereits im minimalen Spannbaum befinden. Wiederholen Sie die folgenden Vorgänge: Wählen Sie jedes Mal eine Kante e∈U-SU mit dem kleinsten Gewicht und eine Kante aus, die mit den Kanten in SU keinen Kreis bildet, und fügen Sie sie zu SU hinzu. Wenn die Anzahl der Kanten in SU gleich N-1 ist, wird der minimale Spannbaum gefunden.
Frage
Wenn ein Knoten kein Blattknoten ist, hat er Kinder, und diese Kinder sind eine Gruppe von Brüdern.
Die Anzahl der Knoten ohne rechten Zeiger beträgt: Wurzelknoten, Anzahl der Nicht-Blattknoten
Schließen Sie symmetrische aus, zählen Sie die Zahl und stellen Sie sicher, dass links immer weniger und rechts mehr oder links mehr und rechts weniger ist.
Baum
Durchschnittliche ASL-Suchlänge
hängt von der Höhe des Baumes ab
Kapitel 5 Bäume und Binärbäume
Binärbaumdurchquerung und Huffman-Baum
Schwierigkeit: Konvertierung zwischen Binärbäumen und Bäumen und Wäldern
Bei den meisten Tests handelt es sich um Multiple-Choice-Fragen, bei denen auch Baumdurchquerungen und Huffman-Baum-Algorithmen zum Einsatz kommen.
Baum
endliche Menge von n Knoten
Der Wurzelknoten ist eindeutig
Die Anzahl der Teilbäume ist unbegrenzt, sie überschneiden sich jedoch nicht.
Grad: Die Anzahl der Teilbäume, die dem Knoten gehören
Binärbaum: Grad <=2
Natur
Auf der i-ten Ebene des Binärbaums gibt es höchstens 2^i-1 Knoten.
Wenn die Tiefe im Binärbaum k beträgt, gibt es höchstens 2^k-1 Knoten. (k>=1)
n0=n2 1, n0 repräsentiert die Anzahl der Knoten mit Grad 0 und n2 repräsentiert die Anzahl der Knoten mit Grad 2.
In einem vollständigen Binärbaum beträgt die Tiefe eines vollständigen Binärbaums mit n Knoten [log2n] 1, wobei [log2n] abgerundet wird
[Binärbaum] Knotenberechnungsformel N = n0 n1 n2
Gesamtzahl der Knoten = Gesamtgrad 1=Oxn0 1xn1 2xn2 ..
vollständiger Binärbaum
Alle Knoten haben linke und rechte Teilbäume und alle Blattknoten befinden sich auf derselben Ebene.
vollständiger Binärbaum
Blattknoten können nur auf der untersten Ebene und der nächstniedrigeren Ebene erscheinen.
Und die Knoten der untersten Ebene sind im Binärbaum an den Positionen ganz links in der Ebene konzentriert.
Die Durchquerungskorrespondenz zwischen Bäumen, Wäldern und Binärbäumen
Haufen
Definition
Muss ein vollständiger Binärbaum sein
Ein vollständiger Binärbaum lässt nur zu, dass die letzte Zeile weniger als voll ist. Und die letzte Zeile muss von links nach rechts sortiert werden. Zwischen den Elementen in der letzten Zeile darf kein Leerraum sein
Haufenweise Ordnung
dagendui
kleiner Wurzelhaufen
Grundoperationen
Heap-Speicher
1. Durchlaufen Sie die Zahl gemäß der Schichtfolge, dargestellt durch ein eindimensionales Array
Der übergeordnete Knoten ist i, der Index des linken untergeordneten Knotens ist 2i 1 und der rechte untergeordnete Knoten ist 2i 2 (diese Regel wird häufig in Algorithmen verwendet).
Oberer Filter
Nur das letzte Element des Baums verstößt gegen die Heap-Reihenfolge
Wird hauptsächlich zum Einfügen neuer Elemente in den Heap verwendet
Komplexität: O(logN)
Nach unten filtern
Nur der Wurzelknoten verstößt gegen die Heap-Reihenfolge
Passen Sie den Wurzelknoten nach unten an
Komplexität: O(logN)
Baue einen Stapel
Wie konvertiere ich ein ungeordnetes Array in einen Heap?
von oben nach unten
In den Heap einfügen, filtern
Komplexität: O(NlogN)
von unten nach oben
Passen Sie die Elemente zunächst in einen Heap an und filtern Sie sie ab der vorletzten Zeile. Führen Sie den Filtervorgang für den übergeordneten Knoten durch.
Komplexität: O(N)
Anwendung: Prioritätswarteschlange
zwei Operationen
Warteschlange einfügen
Popup-Minimalelement
Kann mit einem kleinen Root-Heap implementiert werden
Da der Wurzelknoten des kleinen Root-Heaps min ist, werden die verbleibenden Elemente nach dem Auftauchen in einen Heap angepasst (legen Sie das letzte Element auf den Wurzelknoten und filtern Sie nach unten).
Komplexität: O(logN)
Heap-Sortierung: Elemente nacheinander aus der Prioritätswarteschlange entfernen
Komplexität: O(NlogN)