Imprimir nodos específicos en cada nivel calculado por una función determinada

Debes realizar un recorrido de orden de nivel.

En el siguiente código, estoy asumiendo dos métodos:

  • Una es la getFn(int level)que toma un int y devuelve el valor f (n);
  • Otra es printNth(int i, Node n)que toma un int y un Nodo e imprime maravillosamente que "{n} es el deseado para el nivel {i}".

El código es simple de implementar ahora. Los comentarios lo explican como una historia ...

public void printNth throws IllegalArgumentException (Node root) {

    if (root == null) throw new IllegalArgumentException("Null root provided");

    //Beginning at level 1 - adding the root. Assumed that levels start from 1
    LinkedList<Node> parent = new LinkedList<>();
    parent.add(root)
    int level = 1;

    printNth(getFn(level), root);

    //Now beginning from the first set of parents, i.e. the root itself,
    //we dump all the children from left to right in another list.
    while (parent.size() > 0) { //Last level will have no children. Loop will break there.

        //Starting with a list to store the children
        LinkedList<Node> children = new LinkedList<>();

        //For each parent node add both children, left to right
        for (Node n: parent) {
            if (n.left != null) children.add(n.left);
            if (n.right != null) children.add(n.right);
        }

        //Now get the value of f(n) for this level
        level++;
        int f_n = getFn(level);

        //Now, if there are not sufficient elements in the list, print the list size
        //because children.size()%f(n) will be children.size() only!
        if (children.size() < f_n) System.out.println(children.size()); 
        else printNth(level, children.get(f_n - 1)); //f_n - 1 because index starts from 0

        //Finally, the children list of this level will serve as the new parent list 
        //for the level below.
        parent = children;
    }
}
Respuesta 1

Mi servicio web es como un archivo jar y se utiliza como complemento de otra aplicación web, por lo que solo tengo un web.xml en la aplicación web principal y le doy referencia a mi servlet de envío, y funciona bien, ...

Tenemos una aplicación que se ejecuta actualmente en WebLogic 10.3.5.0 y estamos migrando a WL 12.1.2.0.0. Estamos experimentando problemas con la eliminación de llamadas WS a otra aplicación. Estamos familiarizados con ...

Tengo dicho método: privado estático <T extiende HomerMessage> HomerMessage postRequest (String path, HomerMessage json) lanza IOException, HomerDoh {RequestBody body = RequestBody.create (...

Tengo un código C # que genera una clave usando PBKDF2. // byte [] salt = new RNGCryptoServiceProvider (). GetBytes (salt); byte [] sal = nuevo byte [] {19, 3, 248, 189, 144, 42, 57, 23}; // para las pruebas ...