none
Ayuda con este programa RRS feed

  • Pregunta

  • Buenas noches a todos. Tengo un problema en el método Buscar. Lo que pasa es que quiero obtener la posición en la que se encuentra el nodo ingresado. De antemano, muchas gracias.
    namespace Cola
    {
    class Cola
    {
    class Nodo
    {
    public int edad;
    public Nodo sig;
    }

    private Nodo frente;
    private Nodo final;


    public void Insertar(int x)
    {
    Nodo nuevo;
    nuevo = new Nodo();
    nuevo.edad = x;
    nuevo.sig = null;
    if (frente == null)
    {
    frente = nuevo;
    }
    else
    {
    final.sig = nuevo;
    }
    final = nuevo;
    }


    public void Buscar()
    {
    Nodo nuevo = new Nodo();
    nuevo = frente;
    int pos;
    bool encontrado = false;
    Console.Write(" Ingrese un numero ");
    int nodobuscado = int.Parse(Console.ReadLine());
    if (frente != null)
    {
    while (nuevo != null && encontrado != true)
    {
    if (nuevo.edad == nodobuscado)
    {
    Console.WriteLine("\n Nodo con el dato ( {0} ) encontrado", nodobuscado);
    encontrado = true;
    for (int x = 0; x < 10; x++)
    {
    {

    pos = pos + ' ' + x;

    }
    }

    Console.WriteLine("El elemento se encuentra en la posicion:{0}", pos);
    }
    nuevo = nuevo.sig;
    }
    if (!encontrado)
    {
    Console.WriteLine("\n elemento no encontrado\n");
    }
    }
    else
    {
    Console.WriteLine("\n La cola se encuentra vacía\n");
    }
    Console.ReadKey();
    }


    static void Main(string[] args)
    {
    Cola NuevaCola = new Cola();
    NuevaCola.Insertar(18);
    NuevaCola.Insertar(29);
    NuevaCola.Buscar();
    }
    }
    }
    domingo, 18 de noviembre de 2018 15:29

Respuestas

  • >>me ha funcionado con el primer nodo, al ingresar los demás me sigue mostrando el primer nodo.

    eso es porque no estas iterando ls nodos, te queda solo en el primero

    analizaste el codigo que puse de ejemplo?


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 23:24

Todas las respuestas

  • hola

    Podrias explicarte un poco mas completo, no esta muy claro

    Veo un metodo Buscar() en el cual aplicas un loop buscando por la propiedad "edad" pero no entiendo despues para que esta ese

    for (int x = 0; x < 10; x++)

    no veo ninguna utilidad

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 16:11
  • Hola. Lo que pasa es que quiero realizar un ciclo para indicar la posición en la que se encuentra el nodo encontrado.
    domingo, 18 de noviembre de 2018 16:22
  • Ahora que analizo el codigo no veo como cambias la instancia de la variable "nuevo", que que al principio usas

    Nodo nuevo = new Nodo();

    pero en el while() como cambias los diferentes nodos para validad la edad ?

    la posicio se puede determinar mientras vas comparando los nodos, no hace falta un for separado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 16:31
  • quizas si querias iterar podrias usar

    int posicion = 0;
    Nodo nodoActual  = this.frente;
    
    while(nodoActual == this.final){
    
       Console.Write("Ingrese un numero: ");
       int edad = int.Parse(Console.ReadLine());
    
       if(nodoActual.edad == edad){
            break;
       }
    
       nodoActual = nodoActual.sig;
       posicion ++;
    }
    
    Console.WriteLine("\n Nodo con el dato ( {0} ) encontrado", nodoActual.edad);
    Console.WriteLine("El elemento se encuentra en la posicion:{0}", posicion);


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 16:39
  • Solo me ha funcionado con el primer nodo, al ingresar los demás me sigue mostrando el primer nodo.
    domingo, 18 de noviembre de 2018 22:13
  • >>me ha funcionado con el primer nodo, al ingresar los demás me sigue mostrando el primer nodo.

    eso es porque no estas iterando ls nodos, te queda solo en el primero

    analizaste el codigo que puse de ejemplo?


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 23:24