Inhaltsverzeichnis
Grammatik
Parameter
Algorithmus
Beispiel
Ausgabe
Fazit
Heim Backend-Entwicklung C++ Isomorphismus in N-ary-Bäumen

Isomorphismus in N-ary-Bäumen

Sep 15, 2023 am 09:01 AM
编程关键词 n-ärer Baum Isomorphismus

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-

Isomorphismus in N-ary-Bäumen

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

Isomorphismus in N-ary-Bäumen

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.
}
Nach dem Login kopieren

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.

Die chinesische Übersetzung von

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;
}
Nach dem Login kopieren

Ausgabe

This given information of node will make isomorphism tree
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1664
14
PHP-Tutorial
1266
29
C#-Tutorial
1239
24
So ändern Sie die Dateierweiterung von Win10 Notepad So ändern Sie die Dateierweiterung von Win10 Notepad Jan 04, 2024 pm 12:49 PM

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.

So konvertieren Sie HTML in das MP4-Format So konvertieren Sie HTML in das MP4-Format Feb 19, 2024 pm 02:48 PM

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

Rufen Sie den SQL-Trigger auf, um ein externes Programm auszuführen Rufen Sie den SQL-Trigger auf, um ein externes Programm auszuführen Feb 18, 2024 am 10:25 AM

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 extrahieren Sie Dump-Dateien So extrahieren Sie Dump-Dateien Feb 19, 2024 pm 12:15 PM

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

Veröffentlichungsdatum von Windows 12 Veröffentlichungsdatum von Windows 12 Jan 05, 2024 pm 05:24 PM

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.

So passen Sie das Anzeigeverhältnis des Windows 7-Desktops an So passen Sie das Anzeigeverhältnis des Windows 7-Desktops an Dec 27, 2023 am 08:13 AM

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.

Welche Rolle spielt das NVIDIA Control Panel? Welche Rolle spielt das NVIDIA Control Panel? Feb 19, 2024 pm 03:59 PM

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.

Die Rolle der Vollbreite und Halbbreite in der chinesischen Eingabemethode Die Rolle der Vollbreite und Halbbreite in der chinesischen Eingabemethode Mar 25, 2024 am 09:57 AM

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

See all articles