//Esta función realiza la elminación fisica del nodo, recibe por parametros el index extraido por la //Función obtenerIndice public void EliminaNodoVersiones(int index) { if (index < 0) { Console.WriteLine(Global <string> ._pathTexto + "\\" + "La versión no existe"); } else { //Se compara si el nodo es la cabeza, y se quita el enlace para pasarlo al dato siguiente de la lista if (index == 0) { primero = primero.siguiente; Console.WriteLine(Global <string> ._pathTexto + "\\" + "Registro eliminado con éxito"); } else { //si el nodo no es la cabeza, se realiza una interación del index recibido y la lista, con el fin //de llegar a un nodo anterior al index recibido int contador = 0; NodoVersiones <T> temporal = primero; while (contador < index - 1) { temporal = temporal.siguiente; contador++; } //luego de asignar a temporal el nodo anterior al index recibido, se realiza el enlace //al nodo siguiente del siguiente, ingnorando de esta forma el nodo que esta en la posición del index recibido temporal.siguiente = temporal.siguiente.siguiente; Console.WriteLine(Global <string> ._pathTexto + "\\" + "Registro eliminado con éxito"); } } }
//Método encargado de crear Nodos en la cabeza de la Lista public void agregarVersion(T version, Nodos <T> ArbolCompleto) { NodoVersiones <T> nuevaVersion = new NodoVersiones <T>(version); nuevaVersion.siguiente = primero; primero = nuevaVersion; enlace = (NodoVersiones <T>)ArbolCompleto; }
public NodoVersiones(T dato) { this.dato = dato; this.siguiente = null; this.enlace = null; }