Saltar al contenido

ejemplo de código de recorrido de árbol no binario

Luego de consultar especialistas en la materia, programadores de deferentes ramas y profesores hemos dado con la solución al dilema y la plasmamos en este post.

Ejemplo: recorrido vertical de un árbol binario

/* This is just a function of vertical traversal of binary tree. You need to 
   write required code. Thank you. */// Class to store node and it's distance from parent.classObjpublic:
        Node *root;int dis;Obj(Node *node,int dist)
            root = node;
            dis = dist;;// Main logic of vertical traversal.voidverticalTraversal(Node *root)
    queue<Obj*> q;
    Obj *ob =newObj(root,0);
    q.push(ob);

    map<int, vector<int>> m;while(!q.empty())
        Obj *ob = q.front();
        q.pop();if(m.find(ob->dis)!= m.end())            
            m[ob->dis].push_back(ob->root->data);else   
            vector<int> v;
            v.push_back(ob->root->data);
            m[ob->dis]= v;if(ob->root->left !=NULL)
            q.push(newObj(ob->root->left, ob->dis-1));if(ob->root->right !=NULL)
            q.push(newObj(ob->root->right, ob->dis+1));for(auto it=m.begin(); it!=m.end(); it++)
        vector<int> v1 =(*it).second;for(int j =0; j<v1.size(); j++)
            cout << v1[j]<<"t";

    cout << endl;

Sección de Reseñas y Valoraciones

Si te ha sido de provecho nuestro post, sería de mucha ayuda si lo compartes con el resto seniors y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *