Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Insertar datos
Para insertar datos dentro de una lista doble siempre hay tres formas de
ingresar un dato; excepto cuando la cabeza sea nula es decir el primer Nodo
ingresado, si consideramos que vamos a trabajar con números enteros para
poder observar el orden ascendente
Nodo cabeza;
Nodo aux=cabeza;
boolean EstadoInsertado=false;
if(cabeza==null){
cabeza=nuevo;
}else{
do{
if(nuevo.dato<aux.dato){
nuevo.siguiente=aux;
aux.anterior=nuevo;
if(aux.hashCode()==cabeza.hashCode()){
cabeza=nuevo;
EstadoInsertado=true;
}else{
if(aux.siguiente!=null){
if(aux.siguiente.dato<nuevo.dato){
aux.siguiente=nuevo;
nuevo.anterior=aux;
nuevo.siguiente=aux.siguiente;
aux.siguiente.anterior=nuevo;
EstadoInsertado=true;
}else{
aux.siguiente=nuevo;
nuevo.anterior=aux;
EstadoInsertado=true;
aux=aux.siguiente;
}
Eliminar datos
Para eliminar datos de lista doble de nodos se tiene eliminar los apuntadores
a hacia dicho espacio de memoria y re-apuntar al siguiente Nodo para no
perder la continuidad de la lista.
Hay que tener mucho cuidado en esta parte, porque si se elimina un nodo, se
tiene que eliminar apuntadores, pero luego no los re-apuntamos esto nos va
provocar perdida de información:
1 2 3 4
SI(NodoSelecciondo->siguiente ¡= Null){
NodoSeleccionado->siguiente->anterior=NodoSeleccionado->anterior
SI(NodoSelecciondo->anterior ¡= Null){
NodoSeleccionado->anterior->siguiente=NodoSeleccionado->siguinete
}
2
1 3 4
Buscar Nodo
Para buscar un Nodo solamente se tiene que localizar la cabeza de la lista y
luego ir de siguiente en siguiente con la ayuda de un Nodo aux para poder
recorrer la lista sin afectar los Nodo primordiales como la cabeza de la lista,
hasta encontrar la igualdad de información comparando los datos.
Buscar(){
Nodo Aux;
Boolean estadoBusqueda;
Aux=Cabeza; estadoBusqueda=false;
DO{
If(DatoIngresado==Aux.datoConsultado){
//procesar la información