public void encolar(int _dato) { if (colaVacia()) { contador++; principio = new Nodo(_dato); final = principio; } else { if (contador == this.limiteDeDatos) { Console.WriteLine($"Haz llegado al limite de datos que admite la cola ({contador})"); Console.ReadLine(); return; } else { Nodo nuevo = new Nodo(_dato); if (principio != final) { nuevo.setNodoSiguiente(principio); principio = nuevo; contador++; return; } principio = nuevo; nuevo.setNodoSiguiente(final); } } }
public void desencolar() { if (colaVacia()) { Console.WriteLine("La cola esta vacia..."); } else { Nodo actual = principio; Nodo anterior = null; if (actual.getNodoSiguiente() == null) { principio = null; final = null; contador = 0; return; } while (actual.getNodoSiguiente() != null) { anterior = actual; actual = actual.getNodoSiguiente(); if (actual.getNodoSiguiente() == null) { contador--; anterior.setNodoSiguiente(null); } } } }
public void borrarNodo(int _posicion) { int contador = 0; if (estaVacia()) { Console.WriteLine("No hay nodos que eliminar..."); } else { Nodo actual = primero; //Borra si SOLO hay un nodo en la lista if (actual.getNodoSiguiente() == null && _posicion == 0) { primero = null; return; } Nodo anterior = null; while (actual.getNodoSiguiente() != null) { if (contador == _posicion) { if (contador == 0) { actual = actual.getNodoSiguiente(); primero = actual; return; } anterior.setNodoSiguiente(actual.getNodoSiguiente()); return; } contador++; anterior = actual; actual = actual.getNodoSiguiente(); //Si se quiere borrar el ultimo nodo if (actual.getNodoSiguiente() == null && contador == _posicion) { anterior.setNodoSiguiente(null); return; } } } }
public void agregarNodo(int _dato) { if (estaVacia()) { primero = new Nodo(_dato); } else { Nodo nuevo = new Nodo(_dato); Nodo actual = primero; while (actual.getNodoSiguiente() != null) { actual = actual.getNodoSiguiente(); } actual.setNodoSiguiente(nuevo); } }