#include
en utilisant l’espace de noms std ;
struct Noeud {
valeur int;
vecteur
} ;
Node* newNode(int key)
{
Nœud* temp = nouveau nœud ;
temp->val = clé;
température de retour ;
}
void getLeftRightview(Node* racine)
{
queue
curNodes.push(racine);
vector
while (!curNodes.empty()) {
int n = curNodes.size();
pour (int i = 0; i < n; i++) {
Nœud* cur = curNodes.front();
curNodes.pop();
si (je == 0)
leftView.push_back(
cur->val);
si (i == n – 1)
rightView.push_back(
cur->val);
pour (int it = 0;
it < cur->child.size(); ça++) {
curNodes.push(
cur->enfant[it]);
}
}
}
cout << "Vue de gauche : " ;
pour (int i = 0; i < leftView.size(); i++)
cout << leftView[i] << ' ';
cout << endl;
cout << « Vue de droite : » ;
pour (int i = 0; i < rightView.size(); i++)
cout << rightView[i] << ' ';
}
int main()
{
Nœud* racine = nouveauNœud(1) ;
(root->child).push_back(newNode(2));
(root->child).push_back(newNode(3));
(racine->enfant[0]->enfant).push_back(newNode(4));
(racine->enfant[1]->enfant).push_back(newNode(6));
(racine->enfant[0]->enfant).push_back(newNode(5));
(racine->enfant[1])->child.push_back(newNode(7));
(racine->enfant[1]->enfant).push_back(newNode(8));
getLeftRightview(racine);
renvoie 0 ;
}