Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > listas doblemente enlazadas en c++
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

listas doblemente enlazadas en c++
Enviado por bigMander el día 11 de mayo de 2008

hola comunidad forera, soy nuevo por aqui y vengo a pedir ayuda para una clase de listas doblemente enlazadas usando recursividad, mi problema es al momento de borrar nodos aqui esta el codigo para que lo analicen

struct Nodo {
int valor;
Nodo* sig, *ant;
};

class ListaDoblementeEnlazada {
Nodo* lista;
public:
ListaDoblementeEnlazada() {
lista = NULL;
}

void Insertar(Nodo** lista, int v) {
if(*lista == NULL) {
(*lista) = new Nodo;
(*lista)->valor = v;
(*lista)->sig = NULL;
(*lista)->ant = NULL;
}
else
Insertar(&(*lista)->sig, &(*lista), v);
}

void Insertar(Nodo** lista, Nodo** listaAnt, int v) {
if(*lista == NULL) {
(*lista) = new Nodo;
(*lista)->sig = NULL;
(*lista)->ant = (*listaAnt)->sig;
(*lista)->valor = v;
}
else
Insertar(&(*lista)->sig, &(*lista), v);
}
void Remover (Nodo** lista, int v) {
if((*lista)->valor != v)
Remover(&(*lista)->sig, &(*lista), v);
else {
aux = *lista;
lista = aux->sig;
delete aux;
}
}
void Remover(Nodo** lista, Nodo** listaAnt, int v) {
if((*lista)->valor != v)
Remover(&(*lista)->sig, &(*lista));
else {
aux = *lista;
*lista = aux->sig;
listaAnt->sig = lista;
delete aux;
}
}
};

mi problema es que no estoy seguro si sirva ya que lo hice al tanteo ojala y sirva gracias y espero sus respuestas

 

Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network