Jadual Kandungan
Cara untuk mencari penyelesaian
🎜🎜🎜 , kita hanya perlu mencari kunci yang diberikan. Apabila kami melintasi pokok, kami meletakkan semua nod ke dalam baris gilir, kini apabila kami menemui nod dengan nilai kunci, kami menukar nilai semua nod laluan yang berada di hadapan, dalam proses itu, laluan kami #🎜🎜 #
Rumah pembangunan bahagian belakang C++ Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir

Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir

Sep 14, 2023 pm 07:21 PM
terbalik beratur pokok carian binari

Sebagai contoh, diberikan pepohon carian binari, kita perlu membalikkan laluannya daripada kunci tertentu.

Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir

Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir

Cara untuk mencari penyelesaian

#🎜🎜🎜, kita #Dalam kaedah ini akan membuat baris gilir dan menolak semua nod sehingga kita mendapat nod akar.

p>

Contoh

 
#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&#39;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;
}
Salin selepas log masuk

Output

Before Reversing :
20 30 40 50 60 70 80
After Reversing :
20 30 40 80 60 70 50
Salin selepas log masuk

Penjelasan kod di atas

🎜🎜🎜 , kita hanya perlu mencari kunci yang diberikan. Apabila kami melintasi pokok, kami meletakkan semua nod ke dalam baris gilir, kini apabila kami menemui nod dengan nilai kunci, kami menukar nilai semua nod laluan yang berada di hadapan, dalam proses itu, laluan kami #🎜🎜 #

Kesimpulan

Kami menyelesaikan masalah membalikkan laluan dalam BST menggunakan baris gilir dan ulangan. Kami juga mempelajari program C++ untuk masalah ini dan kaedah lengkap (generik) untuk menyelesaikannya. Kita boleh menulis program yang sama dalam bahasa lain seperti C, java, python dan bahasa lain. Kami harap anda mendapati tutorial ini membantu.

Atas ialah kandungan terperinci Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Oct 15, 2023 pm 02:26 PM

Ringkasan aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL: Dengan pembangunan berterusan aplikasi web, permintaan untuk pemprosesan serentak yang tinggi dan kebolehpercayaan sistem semakin tinggi dan lebih tinggi. Sebagai penyelesaian, teknologi baris gilir digunakan secara meluas dalam PHP dan MySQL untuk melaksanakan kelewatan mesej dan fungsi cuba semula mesej. Artikel ini akan memperkenalkan aplikasi teknologi baris gilir dalam PHP dan MySQL, termasuk prinsip asas baris gilir, kaedah menggunakan baris gilir untuk melaksanakan kelewatan mesej dan kaedah menggunakan baris gilir untuk melaksanakan percubaan semula mesej, dan memberi

Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Jan 09, 2024 pm 05:02 PM

Analisis Prestasi dan Strategi Pengoptimuman JavaQueue Queue Ringkasan: Queue (Queue) ialah salah satu struktur data yang biasa digunakan di Java dan digunakan secara meluas dalam pelbagai senario. Artikel ini akan membincangkan isu prestasi baris gilir JavaQueue dari dua aspek: analisis prestasi dan strategi pengoptimuman serta memberikan contoh kod khusus. Baris Gilir Pengenalan ialah struktur data masuk dahulu keluar dahulu (FIFO) yang boleh digunakan untuk melaksanakan mod pengeluar-pengguna, baris gilir tugas kumpulan benang dan senario lain. Java menyediakan pelbagai pelaksanaan baris gilir, seperti Arr

Bagaimana untuk membalikkan dan membalikkan susunan tatasusunan PHP Bagaimana untuk membalikkan dan membalikkan susunan tatasusunan PHP Sep 05, 2023 am 08:28 AM

Cara membalikkan dan membalikkan tatasusunan PHP Dalam PHP, tatasusunan ialah struktur data yang biasa digunakan yang mampu menyimpan dan memanipulasi sejumlah besar data. Kadangkala kita perlu membalikkan atau membalikkan tatasusunan untuk memenuhi keperluan tertentu. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menterbalikkan dan membalikkan tatasusunan, dan memberikan contoh kod yang sepadan. 1. Membalikkan tatasusunan Membalikkan tatasusunan bermaksud menyusun semula elemen dalam tatasusunan dalam susunan terbalik mengikut susunan asalnya. PHP menyediakan pelbagai kaedah untuk membalikkan tatasusunan Berikut adalah dua kaedah yang biasa digunakan:

Di Jawa, apakah perbezaan antara kaedah add() dan kaedah offer() dalam baris gilir? Di Jawa, apakah perbezaan antara kaedah add() dan kaedah offer() dalam baris gilir? Aug 27, 2023 pm 02:25 PM

Baris gilir dalam Java ialah struktur data linear dengan pelbagai fungsi. Baris gilir mempunyai dua titik akhir dan ia mengikut prinsip masuk dahulu keluar (FIFO) untuk memasukkan dan memadam elemennya. Dalam tutorial ini, kita akan mempelajari tentang dua fungsi penting baris gilir dalam Java, iaitu add() dan Offer(). Apakah giliran? Baris gilir dalam Java ialah antara muka yang memanjangkan pakej util dan koleksi. Elemen dimasukkan ke bahagian belakang dan dikeluarkan dari bahagian hadapan. Baris gilir dalam Java boleh dilaksanakan menggunakan kelas seperti senarai terpaut, DeQueue, dan baris gilir keutamaan. Barisan keutamaan ialah bentuk lanjutan baris gilir biasa, di mana setiap elemen mempunyai keutamaan. Kaedah add() baris gilir digunakan untuk memasukkan elemen ke dalam baris gilir. Ia akan menentukan elemen (sebagai

Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Oct 15, 2023 am 09:15 AM

Pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pengenalan Dalam pembangunan aplikasi web moden, baris gilir tugas adalah teknologi yang sangat penting. Melalui baris gilir, kita boleh beratur beberapa tugasan yang perlu dilaksanakan di latar belakang, dan mengawal masa pelaksanaan dan susunan tugas melalui penjadualan tugas. Artikel ini akan memperkenalkan cara melaksanakan pemantauan dan penjadualan tugas dalam PHP dan MySQL, serta menyediakan contoh kod khusus. 1. Prinsip kerja Baris gilir ialah struktur data masuk dahulu keluar (FIFO) yang boleh digunakan untuk

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Sep 13, 2023 am 11:39 AM

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Dengan perkembangan Internet, e-mel telah menjadi salah satu kaedah komunikasi yang sangat diperlukan dalam kehidupan dan pekerjaan harian manusia. Walau bagaimanapun, apabila perniagaan berkembang dan bilangan pengguna meningkat, menghantar e-mel secara langsung boleh membawa kepada kemerosotan prestasi pelayan, kegagalan penghantaran e-mel dan masalah lain. Untuk menyelesaikan masalah ini, anda boleh menggunakan sistem baris gilir mel untuk menghantar dan mengurus e-mel melalui baris gilir bersiri. Prinsip pelaksanaan sistem baris gilir mel adalah seperti berikut: Apabila mel dimasukkan ke dalam baris gilir, apabila perlu menghantar mel, ia tidak lagi secara langsung

Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir Sep 14, 2023 pm 07:21 PM

Sebagai contoh, memandangkan pepohon carian binari, kita perlu membalikkan laluannya daripada kunci tertentu. Cara untuk mencari penyelesaian Dalam pendekatan ini kita akan membuat baris gilir dan menolak semua nod sehingga kita mendapat nod akar. p>Contoh #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey; structnode*left,*right;};structnode*newNode(intitem){&nb

Terjemahan: Untuk pertanyaan M, terbalikkan julat rentetan yang diberikan Terjemahan: Untuk pertanyaan M, terbalikkan julat rentetan yang diberikan Aug 25, 2023 pm 08:09 PM

Dalam masalah ini, kami akan melakukanMreversequeries pada rentetan yang diberikan mengikut nilaiarray. Kemudian pendekatan naif untuk menyelesaikan masalahmenyimpansetiap segmen rentetan mengikut nilai yang diberikan.Theoptimadapproachusesthelogict that when wereversesthe same substrings two times

See all articles