// Añade un nodo a la pila public void Push(Object elDato) { Nodo_Object nodo = new Nodo_Object(elDato); nodo.Siguiente = Inicio; Inicio = nodo; Length++; }
// Imprime por consola los datos de los nodos de la pila public void Print() { Nodo_Object porImprimir = Inicio; while (porImprimir.Dato != null) { Console.WriteLine(porImprimir.Dato); porImprimir = porImprimir.Siguiente; } }
// Elimina el dato mas antiguo de la cola y retorna el dato que almacenaba public Object Dequeue() { if (IsEmpty) { Console.WriteLine("Cola vacia, no es posible retirar un nodo."); return(null); } Nodo_Object auxiliar = Inicio; Inicio = Inicio.Siguiente; Length--; return(auxiliar.Dato); }
// Retira un nodo de la pila y devuelve el dato que almacena public Object Pop() { if (IsEmpty) { Console.WriteLine("La pila esta vacia. No es posible el Pop."); return(null); } else { Nodo_Object auxiliar = Inicio; Inicio = Inicio.Siguiente; Length--; return(auxiliar.Dato); } }
// Imprime todos los elementos de la cola public void Print() { if (IsEmpty) { Console.WriteLine("Cola vacia. No es posible imprimir."); } else { Nodo_Object porImprimir = Inicio; while (porImprimir.Dato != null) { Console.WriteLine(porImprimir.Dato); porImprimir = porImprimir.Siguiente; } } }
// Inserta un nodo en la cola public void Enqueue(Object elDato) { Nodo_Object nuevo = new Nodo_Object(elDato); if (IsEmpty) { nuevo.Siguiente = Inicio; Inicio = nuevo; } else { Nodo_Object actual = Inicio; Nodo_Object anterior = Inicio; while (actual.Dato != null) { anterior = actual; actual = actual.Siguiente; } nuevo.Siguiente = actual; anterior.Siguiente = nuevo; } Length++; }
// constructor public Cola_Object() { Length = 0; Inicio = new Nodo_Object(null); }