Isomorphismus in N-ary-Bäumen
Isomorphismus ist definiert als zwei Bäume mit der gleichen oder gespiegelten Struktur. Bei einer Spiegelstruktur stimmen die Daten des linken Knotens immer mit denen des rechten Knotens überein. Nehmen wir zum Beispiel eine Zahl, die dem Spiegelbild am nächsten kommt, und sehen wir uns an, was ihre Umkehrung ist, was das wahre Konzept des Isomorphismus ist.
In diesem Artikel prüfen wir, ob zwei verschiedene Binärbäume isomorph sind.
Nehmen wir als Beispiel den Isomorphismus des N-ary-Baums-

Bitte beachten Sie, dass L den linken Knoten und R den rechten Knoten darstellt
Spiegelstruktur der P- und Q-Bäume in der zweiten Partition ganz links

Diese beiden Diagramme zeigen, wie sie bei vier übereinstimmenden Bedingungen (Wurzelknoten von P und Q) zueinander isomorph sind.
Links-Links-Knoten können übereinstimmen.
Beides kann mit Rechts-Rechts-Knoten übereinstimmen.
Sowohl der linke als auch der rechte Knoten können abgeglichen werden.
Oder rechts und links können nicht übereinstimmen.
Grammatik
Die folgende Syntax wird im Programm verwendet −
struct name_of_structure{ data_type var_name; // data member or field of the structure. }
Parameter
struct - Dieses Schlüsselwort wird verwendet, um den Strukturdatentyp darzustellen.
name_of_structure − Wir geben einen beliebigen Namen für die Struktur an.
Eine Struktur ist eine Sammlung verschiedener verwandter Variablen an einem Ort.
Algorithmus
Wir werden eine Header-Datei namens ‘iostream‘ verwenden, um das Programm zu starten.
Wir erstellen eine Struktur namens 'tree_node', die den Ganzzahltyp 'd' und initialisierte Zeigervariablen - 'l' und 'r' enthält und die Daten des linken und rechten untergeordneten Knotens darstellt jeweils.
Jetzt erstellen wir eine weitere Struktur mit einer Funktion namens ‘create_node()‘, die einen Parameter namens ‘data‘ akzeptiert, um den Wert des Wurzelknotens anzugeben. Gleichzeitig erstellen wir einen Zeiger mit dem Namen ‘tree_node‘ und verwenden die angegebenen Daten, um die Zeiger des linken und rechten untergeordneten Knotens auf Null zu initialisieren und den Wurzelknoten zurückzugeben. Mit dieser Funktion fügen wir den Knoten des linken untergeordneten Knotens und des rechten untergeordneten Knotens ein.
Wir erstellen eine Funktion namens ‘check_isomorphism_tree , die den booleschen Datentyp verwendet, zwei tree_node-Zeiger p und q als Eingabeparameter verwendet und einen booleschen Wert zurückgibt. Darin erstellen wir zweimal eine „if-Anweisung“, um zu prüfen, ob die Daten in p gleich den Daten in q sind.
Überprüfen Sie, ob sowohl p als auch q null sind. Wenn ja, geben Sie true zurück, da der Baum isomorph ist.
Überprüfen Sie, ob p oder q null ist, und wenn ja, geben Sie false zurück, da die beiden Bäume nicht isomorph sind.
In der Funktion ‚check_isomorphism_tree‘ verwenden wir die logischen Operatoren „&&“ und „||“, um rekursiv alle möglichen linken und rechten untergeordneten Knotenkombinationen der Knoten ‘p‘ und ‘q‘ zu überprüfen.
Wir beginnen mit der Hauptfunktion und erstellen zwei Baumknoten „p“ und „q“, um Informationen bereitzustellen.
In der Hauptfunktion rufen wir die Funktion „check_isomorphism_tree“ mit einer if-Anweisung auf und übergeben die angegebenen Parameter p und q, um zu überprüfen, ob diese ganzzahligen Werte isomorph sind. Wenn sie isomorph sind, lautet die Druckanweisung „Diese gegebenen Knoteninformationen erzeugen einen isomorphen Baum“, andernfalls ist das Gegenteil der Fall.
Beispiel
lautet:Beispiel
In diesem Programm prüfen wir, ob zwei Binärbäume isomorph sind.
#include<iostream> using namespace std; struct tree_node{ int d; tree_node*l; // l = left tree_node*r; // r = right }; struct tree_node* create_node(int data){ struct tree_node*root= new tree_node; root->d= data; root->l= NULL; root->r= NULL; return root; } bool check_isomorphism_tree(tree_node*p, tree_node*q) { // p and q both are different tree if(p==NULL and q==NULL){ return true; } if(p==NULL or q==NULL){ return false; } // return all the possible condition return (p->d==q->d && ((check_isomorphism_tree(p->l,q->r)&& check_isomorphism_tree(p->r,q->l))||(check_isomorphism_tree(p->l,q->l)&& check_isomorphism_tree(p->r,q->r)))); } int main(){ // Tree of root p struct tree_node *p = create_node(10); p->l = create_node(5); p->r = create_node(4); p->l->l = create_node(11); p->r->r = create_node(12); p->l->r = create_node(51); p->r->l = create_node(6); p->l->r->l = create_node(7); // left->right->left p->l->l->l = create_node(9); // left->left->left // Tree of root q struct tree_node *q = create_node(10); q->l = create_node(5); q->r = create_node(4); q->l->l = create_node(11); q->r->r = create_node(12); q->l->r = create_node(51); q->r->l = create_node(6); q->l->r->l = create_node(7); q->l->l->l = create_node(9); if(check_isomorphism_tree(p,q)){ cout<<"This given information of node will make isomorphism tree"<<endl; } else { cout<<" This given information of node will not make isomorphism tree "<<endl; } return 0; }
Ausgabe
This given information of node will make isomorphism tree
Fazit
In diesem Programm verstehen wir das Konzept des Isomorphismus im N-ary-Baum. Wir haben gesehen, wie man Strukturen verwendet, um Baumknoten darzustellen und Bäume mithilfe von Links-Links-Knoten, Rechts-Links-Knoten, Links-Rechts-Links-Knoten usw. zu erstellen. Die folgenden Operationen helfen dabei, der isomorphen Natur von Bäumen gerecht zu werden.
Das obige ist der detaillierte Inhalt vonIsomorphismus in N-ary-Bäumen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Wenn wir Notepad verwenden, müssen wir die Erweiterung von Notepad ändern, da wir uns mit verschiedenen Dingen befassen müssen. Wie ändern wir also die Erweiterung? Tatsächlich müssen wir nur die Umbenennungsfunktion verwenden, um die Erweiterung zu ändern. So ändern Sie die Erweiterung von Win10 Notepad: 1. Klicken Sie im Ordner zunächst oben auf und überprüfen Sie ihn. 2. Auf diese Weise wird die Dateierweiterung angezeigt. Klicken Sie dann mit der rechten Maustaste auf Ihren Notizblock und wählen Sie 3. Wählen Sie Folgendes aus. 4. Bei Änderung in das JPEG-Format. Dann erscheint eine Eingabeaufforderung, klicken Sie darauf. 5. Die Änderung ist abgeschlossen und das war's.

Titel: So konvertieren Sie HTML in das MP4-Format: Detailliertes Codebeispiel Im täglichen Webproduktionsprozess müssen wir häufig HTML-Seiten oder bestimmte HTML-Elemente in MP4-Videos konvertieren. Speichern Sie beispielsweise Animationseffekte, Diashows oder andere dynamische Elemente als Videodateien. In diesem Artikel wird erläutert, wie Sie HTML5 und JavaScript zum Konvertieren von HTML in das MP4-Format verwenden, und es werden spezifische Codebeispiele bereitgestellt. HTML5-Video-Tag und CanvasAPI HTML5-Einführung

Titel: Spezifische Codebeispiele für SQL-Trigger zum Aufruf externer Programme. Text: Bei der Verwendung von SQL-Triggern ist es manchmal erforderlich, externe Programme aufzurufen, um bestimmte Vorgänge zu verarbeiten. In diesem Artikel wird erläutert, wie externe Programme in SQL-Triggern aufgerufen werden, und es werden spezifische Codebeispiele gegeben. 1. Erstellen Sie einen Trigger. Zuerst müssen wir einen Trigger erstellen, um auf ein Ereignis in der Datenbank zu warten. Hier nehmen wir die „Bestelltabelle (order_table)“ als Beispiel. Wenn eine neue Bestellung eingefügt wird, wird der Trigger aktiviert und dann das externe Programm aufgerufen, um eine Operation auszuführen.

So greifen Sie auf Dump-Dateien zu: In einem Computersystem ist eine Dump-Datei eine Datei, die den Betriebsstatus und die Daten des Systems aufzeichnet. Bei der Softwareentwicklung und Systemfehlerbehebung kann das Abrufen von Dump-Dateien Programmentwicklern und Systemadministratoren dabei helfen, verschiedene Probleme wie Programmabstürze, Speicherverluste und Systemanomalien zu analysieren und zu diagnostizieren. In diesem Artikel werden einige gängige Methoden und Tools zum Abrufen von Dump-Dateien vorgestellt. 1. So greifen Sie mit dem Task-Manager auf Dump-Dateien unter Windows zu: Im Windows-Betriebssystem

Win11 wurde bereits offiziell veröffentlicht, und viele Benutzer haben bereits begonnen, Win12 zu nutzen. Sie möchten wissen, wann Win12 veröffentlicht wird. Den Regeln zufolge wird es etwa im Jahr 2024 veröffentlicht. Wann wird Win12 veröffentlicht? A: Win12 wird voraussichtlich im Herbst 2024 veröffentlicht. 1. Den neuesten aktuellen Informationen von Microsoft zufolge wird win12 voraussichtlich im Herbst 2024 veröffentlicht. 2. Und dieses Mal wird Win12 mehrere neue Designkonzepte haben und es wird weitere Verbesserungen in Bezug auf Ordnung und visuelles Erscheinungsbild geben. 3. Beim letzten Entwicklertreffen gaben Microsoft-Entwickler bekannt, dass sie eine schwebende Taskleiste erstellen werden, um der Taskleiste ein schwebendes Gefühl zu verleihen.

Es gibt viele Freunde, die Win7 verwenden, wenn sie Videos oder Materialien auf dem Computer ansehen. Wie kann man das also anpassen? Werfen wir einen Blick auf die detaillierte Einstellungsmethode. So stellen Sie das Desktop-Anzeigeverhältnis von Win7 ein: 1. Klicken Sie auf die untere linke Ecke des Computers, um die „Systemsteuerung“ zu öffnen. 2. Suchen Sie dann in der Systemsteuerung nach „Darstellung“. 3. Klicken Sie nach Eingabe des Erscheinungsbilds auf „Anzeigen“. 4. Anschließend können Sie die Größe und Darstellung des Desktops entsprechend dem gewünschten Anzeigeeffekt anpassen. 5. Sie können auch links auf „Auflösung anpassen“ klicken. 6. Passen Sie die Proportionen des Computer-Desktops an, indem Sie die Bildschirmauflösung ändern.

Was ist das NVIDIA Control Panel? Mit der rasanten Entwicklung der Computertechnologie ist die Bedeutung von Grafikkarten immer wichtiger geworden. Als einer der weltweit führenden Grafikkartenhersteller hat das Bedienfeld von NVIDIA noch mehr Aufmerksamkeit auf sich gezogen. Was genau macht das NVIDIA-Kontrollfeld? In diesem Artikel erhalten Sie eine detaillierte Einführung in die Funktionen und Verwendungsmöglichkeiten des NVIDIA-Kontrollfelds. Lassen Sie uns zunächst das Konzept und die Definition des NVIDIA-Bedienfelds verstehen. Das NVIDIA Control Panel ist eine Software zur Verwaltung und Konfiguration von Grafikkarteneinstellungen.

Volle Breite und halbe Breite sind gängige Konzepte in chinesischen Eingabemethoden und repräsentieren unterschiedliche Zeichenbreiten. Im Computerbereich werden die Konzepte „Vollbreite“ und „Halbbreite“ hauptsächlich verwendet, um die Größe des Platzes zu beschreiben, den chinesische Schriftzeichen und englische Buchstaben auf dem Bildschirm oder in gedruckter Form einnehmen. Erstens haben die Voll- und Halbbreiten ihren Ursprung ursprünglich in der Ära der Schreibmaschinen. Auf Schreibmaschinen werden chinesische Zeichen normalerweise in voller Breite angezeigt, während englische Zeichen in halber Breite angezeigt werden. Dies liegt daran, dass chinesische Schriftzeichen relativ breit sind und die Verwendung der vollen Breite dazu führen kann, dass der gesamte Artikel schöner und das Layout kompakter aussieht. Die englischen Zeichen sind
