


C++-Code zum Umkehren von Pfaden in einem binären Suchbaum mithilfe von Warteschlangen
Bei einem gegebenen binären Suchbaum müssen wir beispielsweise seinen Pfad von einem bestimmten Schlüssel aus umkehren.
Weg zur Lösung
Bei dieser Methode erstellen wir eine Warteschlange und pushen alle Knoten, bis wir den Wurzelknoten erhalten.
p>
Beispiel
#include <bits/stdc++.h> using namespace std; struct node { int key; struct node *left, *right; }; struct node* newNode(int item){ struct node* temp = new node; temp->key = item; temp->left = temp->right = NULL; return temp; } void inorder(struct node* root){ if (root != NULL) { inorder(root->left); cout << root->key << " "; inorder(root->right); } } void Reversing(struct node** node, int& key, queue<int>& q1){ /* If the tree is empty then return*/ if (node == NULL) return; if ((*node)->key == key){ // if we find the key q1.push((*node)->key); // we push it into our queue (*node)->key = q1.front(); // we change the first queue element with current q1.pop(); // we pop the first element } else if (key < (*node)->key){ // if key is less than current node's value q1.push((*node)->key); // we push the element in our queue Reversing(&(*node)->left, key, q1); //we go to the left subtree using a recursive call (*node)->key = q1.front(); //we reverse the elements q1.pop(); // we pop the first element } else if (key > (*node)->key){ // if key greater than node key then q1.push((*node)->key);// we push node key into queue Reversing(&(*node)->right, key, q1);// we go to right subtree using a recursive call (*node)->key = q1.front();// replace queue front to node key q1.pop(); // we pop the first element } return; } struct node* insert_node(struct node* node, // function to insert node nodes in our BST int key){ if (node == NULL) return newNode(key); // if tree is empty we return a new node if (key < node->key) // else we push that in our tree node->left = insert_node(node->left, key); else if (key > node->key) node->right = insert_node(node->right, key); return node; // returning the node } int main(){ struct node* root = NULL; queue<int> q1; int k = 80; /****************Creating the BST*************************/ root = insert_node(root, 50); insert_node(root, 30); insert_node(root, 20); insert_node(root, 40); insert_node(root, 70); insert_node(root, 60); insert_node(root, 80); cout << "Before Reversing :" << "\n"; inorder(root); cout << "\n"; Reversing(&root, k, q1); cout << "After Reversing :" << "\n"; // print inorder of reverse path tree inorder(root); return 0; }
Ausgabe
Before Reversing : 20 30 40 50 60 70 80 After Reversing : 20 30 40 80 60 70 50
Erklärung des obigen Codes
In dieser Methode suchen wir einfach nach dem angegebenen Schlüssel. Wenn wir den Baum durchqueren, stellen wir alle Knoten in eine Warteschlange und wenn wir nun den Knoten mit dem Schlüsselwert finden, tauschen wir die Werte aller Pfadknoten aus, die vor uns kamen, und dabei unseren Pfad
Fazit
Wir haben das Problem der Pfadumkehr in BST mithilfe von Warteschlangen und Rekursion gelöst. Wir haben auch das C++-Programm für dieses Problem und die vollständige (generische) Methode zur Lösung gelernt. Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python und anderen Sprachen schreiben. Wir hoffen, dass Sie dieses Tutorial hilfreich fanden.
Das obige ist der detaillierte Inhalt vonC++-Code zum Umkehren von Pfaden in einem binären Suchbaum mithilfe von Warteschlangen. 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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



Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Zusammenfassung: Mit der kontinuierlichen Entwicklung von Webanwendungen wird die Nachfrage nach hoher Parallelitätsverarbeitung und Systemzuverlässigkeit immer höher. Als Lösung wird die Warteschlangentechnologie in PHP und MySQL häufig verwendet, um Nachrichtenverzögerungs- und Nachrichtenwiederholungsfunktionen zu implementieren. In diesem Artikel wird die Anwendung der Warteschlangentechnologie in PHP und MySQL vorgestellt, einschließlich der Grundprinzipien von Warteschlangen, Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenverzögerungen und Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenwiederholungen

Leistungsanalyse und Optimierungsstrategie von JavaQueue Queue Zusammenfassung: Queue (Queue) ist eine der am häufigsten verwendeten Datenstrukturen in Java und wird in verschiedenen Szenarien häufig verwendet. In diesem Artikel werden die Leistungsprobleme von JavaQueue-Warteschlangen unter zwei Aspekten erörtert: Leistungsanalyse und Optimierungsstrategien sowie spezifische Codebeispiele. Einführungswarteschlange ist eine First-In-First-Out-Datenstruktur (FIFO), die zur Implementierung des Producer-Consumer-Modus, der Thread-Pool-Aufgabenwarteschlange und anderer Szenarien verwendet werden kann. Java bietet eine Vielzahl von Warteschlangenimplementierungen, wie z. B. Arr

So kehren Sie ein PHP-Array um und kehren es um. In PHP ist ein Array eine häufig verwendete Datenstruktur, die große Datenmengen speichern und bearbeiten kann. Manchmal müssen wir das Array umkehren oder umkehren, um bestimmte Anforderungen zu erfüllen. In diesem Artikel wird die Verwendung von PHP zum Umkehren und Umkehren eines Arrays vorgestellt und entsprechende Codebeispiele gegeben. 1. Ein Array umkehren Das Umkehren eines Arrays bedeutet, dass die Elemente im Array in umgekehrter Reihenfolge entsprechend ihrer ursprünglichen Reihenfolge neu angeordnet werden. PHP bietet eine Vielzahl von Methoden zum Umkehren von Arrays. Hier sind zwei häufig verwendete Methoden:

Warteschlange in Java ist eine lineare Datenstruktur mit mehreren Funktionen. Eine Warteschlange hat zwei Endpunkte und folgt beim Einfügen und Löschen ihrer Elemente dem FIFO-Prinzip (First-In-First-Out). In diesem Tutorial lernen wir zwei wichtige Funktionen von Warteschlangen in Java kennen, nämlich add() und Offer(). Was ist eine Warteschlange? Queue in Java ist eine Schnittstelle, die die Util- und Collection-Pakete erweitert. Elemente werden im Backend eingefügt und im Frontend entfernt. Warteschlangen in Java können mithilfe von Klassen wie verknüpften Listen, DeQueue und Prioritätswarteschlangen implementiert werden. Eine Prioritätswarteschlange ist eine erweiterte Form einer normalen Warteschlange, bei der jedes Element eine Priorität hat. Die Methode add() der Warteschlange wird verwendet, um Elemente in die Warteschlange einzufügen. Es definiert das Element (als

Implementierung der Überwachung von Warteschlangenaufgaben und der Aufgabenplanung in PHP und MySQL. Einführung In der modernen Webanwendungsentwicklung ist die Aufgabenwarteschlange eine sehr wichtige Technologie. Über Warteschlangen können wir einige Aufgaben, die im Hintergrund ausgeführt werden müssen, in eine Warteschlange stellen und die Ausführungszeit und Reihenfolge der Aufgaben durch Aufgabenplanung steuern. In diesem Artikel wird die Implementierung der Aufgabenüberwachung und -planung in PHP und MySQL vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Funktionsprinzip der Warteschlange Warteschlange ist eine FIFO-Datenstruktur (First-In-First-Out), die verwendet werden kann

Was ist das Prinzip und die Implementierung des PHP-Mail-Warteschlangensystems? Mit der Entwicklung des Internets ist E-Mail zu einem unverzichtbaren Kommunikationsmittel im täglichen Leben und bei der Arbeit der Menschen geworden. Wenn das Unternehmen jedoch wächst und die Anzahl der Benutzer zunimmt, kann das direkte Versenden von E-Mails zu Problemen wie einer Verschlechterung der Serverleistung und einem Ausfall der E-Mail-Zustellung führen. Um dieses Problem zu lösen, können Sie ein Mail-Warteschlangensystem verwenden, um E-Mails über eine serielle Warteschlange zu senden und zu verwalten. Das Implementierungsprinzip des Mail-Warteschlangensystems lautet wie folgt: Wenn die E-Mail in die Warteschlange gestellt wird und die E-Mail gesendet werden muss, erfolgt dies nicht mehr direkt

Bei diesem Problem führen wir umgekehrte Abfragen für die gegebene Zeichenfolge gemäß den Array-Werten durch. Der naive Ansatz zur Lösung des Problems besteht darin, jedes Zeichenfolgensegment gemäß dem angegebenen Array-Wert umzukehren. Der optimierte Ansatz verwendet die Logik, wenn dieselbe Teilzeichenfolge zweimal umgekehrt wird

Bei einem gegebenen binären Suchbaum müssen wir beispielsweise seinen Pfad von einem bestimmten Schlüssel aus umkehren. Möglichkeiten, die Lösung zu finden Bei diesem Ansatz erstellen wir eine Warteschlange und pushen alle Knoten, bis wir den Wurzelknoten erhalten. p>Beispiel #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey; structnode*left,*right;};structnode*newNode(initem){&nb
