Beispiel #1
0
        public static NodoPilaCola APilarEncolar(NodoPilaCola pilacola)
        {
            //CASO 1: Pila no ha sido instanciada, o, pila nula
            if (pilacola == null)
            {
                Console.WriteLine("La estructura de datos no ha sido creada... escoja opción 1");
                return(pilacola);
            }


            Console.WriteLine("Ingrese elemento a guardar");
            int          valor     = int.Parse(Console.ReadLine());
            NodoPilaCola nodoNuevo = new NodoPilaCola(valor);

            NodoPilaCola aux = pilacola;

            for (; aux.siguiente != null; aux = aux.siguiente)
            {
                ;
            }
            aux.siguiente = nodoNuevo;
            pilacola.cima = nodoNuevo;

            return(pilacola);
        }
Beispiel #2
0
 public static void Imprimir(NodoPilaCola miPila)
 {
     if (miPila == null)
     {
         Console.WriteLine("La estructura de datos no ha sido creada... escoja opción 1");
     }
     for (NodoPilaCola aux = miPila; aux != null; aux = aux.siguiente)
     {
         Console.WriteLine("Dato:" + aux.dato + "\n");
     }
 }
Beispiel #3
0
 public static void estaVacia(NodoPilaCola miPila)
 {
     //CASO 1: Pila no ha sido instanciada, o, pila nula
     if (miPila == null)
     {
         Console.WriteLine("La estructura de datos esta vacia");
     }
     else
     {
         Console.WriteLine("La estructura de datos no esta vacia");
     }
 }
Beispiel #4
0
 public static void ImprimirCima(NodoPilaCola miPila)
 {
     //CASO 1: Pila no ha sido instanciada, o, pila nula
     if (miPila == null)
     {
         Console.WriteLine("La estructura de datos no ha sido creada... escoja opción 1");
     }
     else
     {
         Console.WriteLine("Cima: " + miPila.cima.dato + "\n");
     }
 }
Beispiel #5
0
        static void Main(string[] args)
        {
            int op = 0;

            NodoPilaCola pilacola = null;

            Console.WriteLine("Escoja La estructura de datos a usar\n"
                              + "(1) Pila  \n"
                              + "(2) Cola \n");
            int op0 = int.Parse(Console.ReadLine());



            do
            {
                Console.WriteLine("Ingrese opción \n"
                                  + "(1) Crear  \n"
                                  + "(2) Apilar - Encolar \n" +
                                  "(3) Desapilar - Desencolar\n" +
                                  "(4) Cima\n" +
                                  "(5) Preguntar si la estructura de datos esta vacia \n" +
                                  "(6) Imprimir Toda La estructura de datos \n" +
                                  "(7) Salir \n");
                op = int.Parse(Console.ReadLine());

                switch (op)
                {
                case 1:
                    pilacola = NodoPilaCola.Crear(pilacola);
                    break;

                case 2:
                    pilacola = NodoPilaCola.APilarEncolar(pilacola);
                    break;

                case 3:
                    pilacola = NodoPilaCola.DesapilarDesencolar(pilacola, op0);
                    break;

                case 4:
                    NodoPilaCola.ImprimirCima(pilacola);
                    break;

                case 5:
                    NodoPilaCola.estaVacia(pilacola);
                    break;

                case 6:
                    NodoPilaCola.Imprimir(pilacola);
                    break;
                }
            } while (op != 7);
        }
Beispiel #6
0
        public static NodoPilaCola Crear(NodoPilaCola pilacola)
        {
            Console.WriteLine("Ingrese elemento a guardar");
            int valor = int.Parse(Console.ReadLine());

            pilacola        = new NodoPilaCola(valor);
            pilacola.frente = pilacola.cima = pilacola;

            /*Bloque para probar impresión de direcciones de memoria
             * System.out.println("Dirección 1: "+pila);
             * System.out.println("Dato de dir 1: "+pila.dato);
             * System.out.println("Dirección 2: "+pila.siguiente);
             * System.out.println("Dato de dir 2: "+pila.siguiente.dato);*/

            return(pilacola);
        }
Beispiel #7
0
        public static NodoPilaCola DesapilarDesencolar(NodoPilaCola pilacola, int op0)
        {
            //CASO 1: Pila no ha sido instanciada, o, pila nula
            if (pilacola == null)
            {
                Console.WriteLine("La estructura de datos no ha sido creada... escoja opción 1");
                return(pilacola);
            }
            //Caso 2: que solo exista nodo
            if (pilacola.siguiente == null)
            {
                Console.WriteLine("Elemento: " + pilacola.dato);
                return(pilacola.siguiente);//return null;
            }

            if (op0 == 2)
            {
                //CASO 1: Pila no ha sido instanciada, o, pila nula
                if (pilacola == null)
                {
                    Console.WriteLine("La estructura de datos no ha sido creada... escoja opción 1");
                    return(pilacola);
                }

                Console.WriteLine("Elemento: " + pilacola.dato);
                pilacola = pilacola.siguiente;

                return(pilacola);//return null;
            }
            else
            {
                //Caso 3 donde hay 2 o más nodos
                NodoPilaCola aux = pilacola;
                for (; aux.siguiente.siguiente != null; aux = aux.siguiente)
                {
                    ;
                }
                Console.WriteLine("Elemento: " + aux.siguiente.dato);
                aux.siguiente = aux.siguiente.siguiente;
                pilacola.cima = aux;
                return(pilacola);
            }
        }
Beispiel #8
0
 public NodoPilaCola(int dato)
 {
     this.dato      = dato;
     this.siguiente = null;
 }