Isomorfisme dalam pokok N-ary
Isomorfisme ditakrifkan sebagai dua pokok yang mempunyai struktur yang sama atau bercermin. Dalam kes struktur cermin, data nod kiri akan sentiasa sepadan dengan nod kanan. Sebagai contoh, kita akan mengambil nombor yang merupakan imej cermin terdekat dan melihat apakah songsangnya, iaitu konsep sebenar isomorfisme.
Dalam artikel ini, kami akan menyemak sama ada dua pokok binari berbeza adalah isomorfik.
Mari kita ambil isomorfisme pokok N-ary sebagai contoh-

Sila ambil perhatian bahawa L mewakili nod kiri dan R mewakili nod kanan
Struktur cermin pokok P dan Q di sekatan kedua paling kiri di sebelah kiri

Dua rajah ini menunjukkan bagaimana ia isomorfik antara satu sama lain dengan memberikan empat keadaan padanan (nod akar P dan Q).
Nod kiri-kiri boleh sepadan.
Sama ada boleh memadankan nod kanan-kanan.
Kedua-dua nod kiri dan kanan boleh dipadankan.
Atau kanan dan kiri tidak boleh sepadan.
Tatabahasa
Sintaks berikut digunakan dalam program −
struct name_of_structure{ data_type var_name; // data member or field of the structure. }
Parameter
struct − Kata kunci ini digunakan untuk mewakili jenis data struktur.
nama_struktur − Kami menyediakan sebarang nama untuk struktur tersebut.
Sesuatu struktur ialah himpunan pelbagai pembolehubah yang berkaitan di satu tempat.
Algoritma
Kami akan menggunakan fail pengepala dipanggil ‘iostream’ untuk memulakan program.
Kami sedang mencipta struktur yang dipanggil 'tree_node', yang mengandungi jenis integer 'd' dan pembolehubah penunjuk yang dimulakan - 'l' dan 'r', mewakili data nod anak kiri dan kanan masing-masing.
Sekarang kita mencipta struktur lain menggunakan fungsi yang dipanggil ‘create_node()’ yang menerima parameter yang dipanggil ‘data’ untuk menentukan nilai nod akar. Pada masa yang sama, kami mencipta penuding bernama ‘tree_node’ dan menggunakan data yang diberikan untuk memulakan penuding nod anak kiri dan kanan kepada null dan mengembalikan nod akar. Menggunakan fungsi ini, kami akan memasukkan nod nod anak kiri dan nod anak kanan.
Kami sedang mencipta fungsi yang dipanggil ‘check_isomorphism_tree , yang menggunakan jenis data Boolean, mengambil dua tree_node penunjuk p dan q sebagai parameter input dan mengembalikan nilai boolean. Di dalamnya, kami mencipta "penyataan jika" dua kali untuk menyemak sama ada data dalam p adalah sama dengan data dalam q.
Semak jika kedua-dua p dan q adalah batal, jika ya, kembalikan benar kerana pokok itu adalah isomorfik.
Semak sama ada p atau q adalah batal, dan jika ya, kembalikan palsu kerana kedua-dua pokok itu bukan isomorfik.
Dalam fungsi ‘check_isomorphism_tree’, kami menggunakan operator logik “&&” dan “||” untuk menyemak semua kemungkinan gabungan nod anak kiri dan kanan nod ‘p’ dan ‘q’.
Kami bermula dari fungsi utama dan mencipta dua nod pokok "p" dan "q" untuk memberikan maklumat.
Dalam fungsi utama, kami memanggil fungsi ‘check_isomorphism_tree’ menggunakan pernyataan if dan lulus parameter p dan q yang diberikan untuk mengesahkan sama ada nilai integer ini adalah isomorfik. Jika ia adalah isomorfik, pernyataan cetakan ialah "Maklumat nod yang diberikan ini akan menjana pokok isomorfik", jika sebaliknya adalah benar.
Contoh
ialah:Contoh
Dalam program ini, kami akan menyemak sama ada dua pokok binari adalah isomorfik.
#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; }
Output
This given information of node will make isomorphism tree
Kesimpulan
Dalam program ini, kami memahami konsep isomorfisme dalam pokok N-ary. Kami melihat cara menggunakan struktur untuk mewakili nod pokok, dan untuk membina pokok menggunakan nod kiri-kiri, nod kanan-kiri, nod kiri-kanan-kiri, dll. Operasi berikut membantu memenuhi sifat isomorfik pokok.
Atas ialah kandungan terperinci Isomorfisme dalam pokok N-ary. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apabila menggunakan Notepad, kita perlu menukar sambungan Notepad kerana perkara yang berbeza yang perlu kita tangani Jadi bagaimana kita menukar sambungan Sebenarnya, kita hanya perlu menggunakan fungsi nama semula untuk mengubah suai sambungan. Cara menukar sambungan Win10 Notepad: 1. Dalam folder, mula-mula klik pada bahagian atas dan semaknya. 2. Dengan cara ini, sambungan fail akan dipaparkan, kemudian klik kanan pad nota anda dan pilih 3. Pilih yang berikut. 4. Jika ditukar kepada format .jpeg. Kemudian gesaan akan muncul, klik padanya. 5. Perubahan telah selesai, dan itu sahaja.

Tajuk: Cara menukar HTML kepada format MP4: Contoh kod terperinci Dalam proses pengeluaran halaman web harian, kami sering menghadapi keperluan untuk menukar halaman HTML atau elemen HTML tertentu kepada video MP4. Contohnya, simpan kesan animasi, tayangan slaid atau elemen dinamik lain sebagai fail video. Artikel ini akan memperkenalkan cara menggunakan HTML5 dan JavaScript untuk menukar HTML kepada format MP4 dan memberikan contoh kod khusus. Tag video HTML5 dan pengenalan HTML5 CanvasAPI

Tajuk: Contoh kod khusus untuk pencetus SQL untuk memanggil program luaran Teks: Apabila menggunakan pencetus SQL, kadangkala perlu memanggil program luaran untuk memproses beberapa operasi tertentu. Artikel ini akan memperkenalkan cara memanggil program luaran dalam pencetus SQL dan memberikan contoh kod khusus. 1. Buat pencetus Pertama, kita perlu mencipta pencetus untuk mendengar peristiwa dalam pangkalan data. Di sini kita mengambil "jadual pesanan (jadual_pesanan)" sebagai contoh Apabila pesanan baharu dimasukkan, pencetus akan diaktifkan, dan kemudian program luaran akan dipanggil untuk melaksanakan operasi.

Cara merebut fail Dump Dalam sistem komputer, fail Dump ialah fail yang merekodkan status pengendalian dan data sistem. Dalam pembangunan perisian dan penyelesaian masalah sistem, merebut fail Dump boleh membantu pembangun program dan pentadbir sistem menganalisis dan mendiagnosis pelbagai masalah, seperti ranap program, kebocoran memori dan keabnormalan sistem. Artikel ini akan memperkenalkan beberapa kaedah dan alatan biasa untuk merebut fail Dump. 1. Bagaimana untuk mengambil fail Dump di bawah sistem Windows menggunakan Pengurus Tugas: Dalam sistem pengendalian Windows,

Sebelum ini, win11 telah dikeluarkan secara rasmi, dan ramai pengguna sudah mula menikmati win12 mereka ingin tahu bilakah win12 akan dikeluarkan. Bilakah win12 dikeluarkan: J: Win12 dijangka dikeluarkan sekitar musim luruh tahun 2024. 1. Menurut maklumat terkini Microsoft, win12 dijangka dikeluarkan pada musim luruh 2024. 2. Dan kali ini win12 akan mempunyai pelbagai konsep reka bentuk baharu, dan akan terdapat lebih banyak peningkatan dalam kekemasan dan penampilan visual. 3. Pada mesyuarat pembangun terkini, pembangun Microsoft mendedahkan bahawa mereka akan mencipta bar tugas terapung untuk memberikan bar tugas perasaan terapung.

Terdapat ramai rakan yang menggunakan win7 Apabila menonton video atau bahan di komputer, mereka perlu melaraskan perkadarannya. Mari kita lihat kaedah tetapan terperinci. Bagaimana untuk menetapkan nisbah paparan desktop win7: 1. Klik pada sudut kiri bawah komputer untuk membuka "Panel Kawalan". 2. Kemudian cari "Penampilan" dalam panel kawalan. 3. Selepas memasukkan rupa, klik "Tunjukkan". 4. Kemudian anda boleh melaraskan saiz dan paparan desktop mengikut kesan paparan yang dikehendaki. 5. Anda juga boleh mengklik "Laraskan Resolusi" di sebelah kiri. 6. Laraskan perkadaran desktop komputer dengan menukar resolusi skrin.

Apakah Panel Kawalan NVIDIA Dengan perkembangan pesat teknologi komputer, kepentingan kad grafik menjadi semakin penting. Sebagai salah satu pengeluar kad grafik terkemuka dunia, panel kawalan NVIDIA telah menarik lebih banyak perhatian. Jadi, apakah sebenarnya yang dilakukan oleh panel kawalan NVIDIA? Artikel ini akan memberi anda pengenalan terperinci kepada fungsi dan kegunaan panel kawalan NVIDIA. Mula-mula, mari kita fahami konsep dan definisi panel kawalan NVIDIA. Panel Kawalan NVIDIA ialah perisian yang digunakan untuk mengurus dan mengkonfigurasi tetapan berkaitan kad grafik.

Lebar penuh dan separuh lebar ialah konsep biasa dalam kaedah input Cina, dan ia mewakili lebar aksara yang berbeza. Dalam bidang komputer, konsep lebar penuh dan separuh lebar digunakan terutamanya untuk menggambarkan saiz ruang yang diduduki oleh aksara Cina dan huruf Inggeris pada skrin atau dalam cetakan. Pertama sekali, lebar penuh dan separuh lebar asalnya berasal dari era mesin taip. Pada mesin taip, aksara Cina biasanya dipaparkan dalam bentuk lebar penuh, manakala aksara Inggeris dipaparkan dalam bentuk separuh lebar. Ini kerana aksara Cina agak luas, dan menggunakan lebar penuh boleh menjadikan keseluruhan artikel kelihatan lebih cantik dan reka letak lebih padat. Aksara Inggeris ialah
