Acum, la nodurile care indică 2, toate cele trei condiții revin la true , prin urmare, putem returna true din această funcție și o putem elimina din stiva de recursivitate. Apoi, la nodul 1, două condiții sunt adevărate, prin urmare, apelăm copilul din dreapta al lui n1 și n2 pentru a verifica a treia condiție. La nodurile care indică spre 2, două din cele trei condiții returnează true, deci vom continua și vom verifica a treia condiție.
Efectuați parcurgerea iterativă în ordine interioară a unui arbore și parcurgerea iterativă în ordine inversă a celuilalt arbore în paralel. Am discutat o soluție recursivă pentru a verifica dacă doi arbori sunt în oglindă. În această postare este discutată soluția iterativă.
Cuprins
Partea 2 din 2:Examinarea oglinzii
Verificați dacă doi arbori sunt sau nu imagini în oglindă Scrieți un program C pentru a verifica dacă doi arbori sunt sau nu imagini în oglindă. Iată un program simplu pentru a verifica dacă doi arbori binari sunt imagini în oglindă unul față de celălalt sau nu în limbajul de programare C. Scrieți un program C pentru a verifica dacă doi arbori sunt imagini în oglindă sau nu.
Luați în considerare măsura extremă de a sparge sticla. Dacă este vorba de o oglindă obișnuită, aceasta se va sparge și veți vedea suportul oglinzii sau un perete solid. Dacă este o oglindă bidirecțională, veți vedea camera din spatele oglinzii. Probabil că ar trebui să luați în considerare această opțiune doar dacă vă simțiți amenințat sau sunteți în pericol. Spargerea geamului va provoca daune și va crea un pericol pentru siguranță.
întrebări.
Subarborele stâng al nodului rădăcină al primului arbore este același cu subarborele drept al nodului rădăcină al celui de-al doilea arbore și viceversa. În exemplul de mai sus, ambii arbori sunt oglinda unul altuia. După cum puteți vedea mai sus, cu excepția nodului rădăcină, copilul din stânga va deveni copil din dreapta și invers. Aceasta este semnificația oglindirii arborelui binar. Problema este de a verifica dacă cei doi arbori binari sunt oglinzi unul altuia sau nu.
Condițiile de mai sus sunt verificate în mod recursiv pentru întregul arbore. Din imaginea de mai sus putem ajunge la punctele de mai jos care returnează adevărat. Dacă puteți vedea în imaginea de mai sus, structura ambilor arbori este în oglindă. Subarborele stâng al rădăcinii din "a" și subarborele drept al rădăcinii din "b" sunt în oglindă.
Nu este răspunsul pe care îl căutați? Răspundeți la alte întrebări etichetate python tree sau puneți-vă propria întrebare.
Vom apela în mod recursiv la copilul din dreapta al nodurilor. Din nou, funcția respectivă va fi adăugată la stiva noastră recursivă. Trebuie să scriem o funcție recursivă isSymmetrical() care să ia ca argument doi arbori și să returneze true dacă arborii sunt simetrici și false dacă arborii nu sunt simetrici. Funcția isSymmetrical() verifică în mod recursiv două rădăcini și subarborele de sub rădăcină.
În funcția părinte în care n1 și n2 indică 3, doar două din cele trei condiții sunt adevărate, prin urmare vom returna valoarea false. În funcția părinte în care n1 și n2 indică 1, din nou, doar două din cele trei condiții sunt adevărate, prin urmare vom returna valoarea false. La fel ca la pasul 4, n1 și n2 indică NULL, prin urmare vom returna din nou true și funcția va fi eliminată din stiva noastră de recursivitate.
Program pentru a verifica dacă doi copaci sunt oglinzi în Python
Nod într-o structură de date arborescentă, care stochează datele efective ale elementului respectiv și face legătura cu elementul următor în structura ierarhică. Nu putem avea întregul arbore în memorie, deci nu este ideal să folosim recursivitatea. Să presupunem, de dragul simplității, că nu putem păstra în memorie decât maximum două noduri. În acest tutorial, vom învăța cum să verificăm dacă doi arbori sunt sau nu în oglindă în Python. Dacă oricare dintre cele două valori este nulă, atunci arborele nu se încadrează în criteriile pentru a fi numit imagine în oglindă.
O imagine în oglindă a unui arbore binar este un alt arbore binar în care copiii din stânga și din dreapta tuturor nodurilor care nu sunt frunze ale arborelui binar dat sunt interschimbate. Deoarece sunt egali, verificăm din nou subarborele din stânga și adăugăm funcția la stiva noastră de recursivitate. Având în vedere 2 noduri rădăcină de arbori binari, se verifică dacă structura este în oglindă unul față de celălalt. Se spune că doi arbori sunt oglinzi unul față de celălalt atunci când structurile lor sunt imagini în oglindă unul față de celălalt.
Algoritm pentru a verifica dacă doi arbori sunt în oglindă
Program C++ pentru a verifica dacă doi copaci sunt în oglindă sau nu. Și, în mod recursiv, se apelează subarborele drept al arborelui 1 și subarborele stâng al arborelui 2. Inițial, avem variabilele n1 și n2 care indică rădăcinile ambilor arbori. Această funcție se află, de asemenea, în interiorul stivei noastre de recursivitate. Subarborele stâng al acestui nod este identic cu subarborele stâng al nodului corespunzător. Mai jos sunt imaginile care arată Arborele binar dat și imaginea în oglindă a unui arbore binar dat.
WikiHow este un "wiki", similar cu Wikipedia, ceea ce înseamnă că multe dintre articolele noastre sunt scrise de mai mulți autori. Pentru a crea acest articol, 56 de persoane, unele anonime, au lucrat pentru a-l edita și îmbunătăți de-a lungul timpului. Acest articol a fost vizualizat de 1.779.092 de ori.
Verifică dacă doi arbori binari sunt oglinda unul altuia
Există cazuri în care datele sunt perfect oglindite și cazuri în care nu sunt. Datele goale întrepătrunse cu date care nu sunt goale sunt considerate "acceptabile", cu excepția cazului în care se specifică altfel. Cunoaștem n, numărul total de niveluri din arborele nostru. Conectați și partajați cunoștințele într-o singură locație structurată și ușor de căutat. Această problemă poate fi rezolvată cu ușurință folosind recursivitatea, însă vom demonstra, de asemenea, cum poate fi rezolvată folosind metoda iterativă. La acest articol a contribuit Ayush Jauhari.
Trebuie să completați corpul funcției areMirror. Se așteaptă ca funcția să verifice dacă cei doi arbori care îi sunt trecuți sunt imagini în oglindă unul față de celălalt ca formă . Prin urmare, trebuie doar să efectuați o parcurgere în ordine pe primul arbore și o parcurgere în ordine inversă pe celălalt și să verificați dacă toate elementele sunt identice. Aș itera peste arbore cu două bucle, una pentru ramura stângă și una pentru ramura dreaptă pentru fiecare nod. În acest fel, nu stocați în memorie decât două valori ale nodurilor și două contoare de bucle. Dacă există un număr impar de noduri, atunci săriți peste el și coborâți în arbore.
Verificați dacă doi copaci sunt în oglindă
Copacii din figura de mai sus sunt oglinzi unul altuia. Acest articol a fost scris de Ashish Gupta. Vă rugăm să scrieți comentarii dacă găsiți ceva incorect sau dacă doriți să împărtășiți mai multe informații despre subiectul discutat mai sus.
geeksForGeeks/Check if two trees are Mirror.md
Vom converti condițiile de mai sus în funcție recursivă. Subarborele stâng al primului arbore trebuie să fie egal cu subarborele drept al celui de-al doilea arbore. Dacă ambii arbori sunt goi, se returnează 1. Valoarea unui nod din T1 este egală cu valoarea nodului corespunzător din T2.