Lista Circular Doble

6
 #include <conio.h> #include <iostream.h> #include <stdlib.h> #include <stdio.h> class nodo {  public:  int dato;  nodo *ant, *sig;  }; typedef nodo *pnodo; class lista_dl:public nodo {  public:  pnodo inicial, actual, temp, temp1, temp2, au x;  lista_dl(void);  int agregar(int);  int agregar (int,int);  int buscar (int);  int actualizar (int, int);  int listar(void);  int mostrar (void);  int borrar (int);  int comprobarlista(void);  }; lista_dl::lista_dl(void) { inicial=NULL; actual=NULL; temp=NULL; temp1=NULL; temp2=NULL; aux=NULL; } int lista_dl::agregar (int a) { inicial=new (nodo); inicial->sig=NULL; inicial->ant=NULL; inicial->dato=a; actual=inicial; return 1; } int lista_dl::agregar (int extremo, int a) { if (extremo==NULL) { while(actual->ant!=NULL)

description

bases de datos, listas doblememte circulares

Transcript of Lista Circular Doble

#include #include #include #include class nodo { public: int dato; nodo *ant, *sig; };typedef nodo *pnodo;class lista_dl:public nodo { public: pnodo inicial, actual, temp, temp1, temp2, aux; lista_dl(void); int agregar(int); int agregar (int,int); int buscar (int); int actualizar (int, int); int listar(void); int mostrar (void); int borrar (int); int comprobarlista(void); };lista_dl::lista_dl(void){inicial=NULL;actual=NULL;temp=NULL;temp1=NULL;temp2=NULL;aux=NULL;}int lista_dl::agregar (int a){inicial=new (nodo);inicial->sig=NULL;inicial->ant=NULL;inicial->dato=a;actual=inicial;return 1;}int lista_dl::agregar (int extremo, int a){if (extremo==NULL){while(actual->ant!=NULL){actual=actual->ant;}temp=new (nodo);actual->ant=temp;temp->sig=actual;temp->ant=NULL;temp->dato=a;actual=temp;}else {while (actual->sig!=NULL){actual=actual->sig;}temp=new (nodo);actual->sig=temp;temp->ant=actual;temp->sig=NULL;temp->dato=a;actual=temp; }return 1;}int lista_dl::buscar (int a){while (actual->ant!=NULL){actual=actual->ant;}while (actual->sig!=NULL && actual->dato!=a){actual=actual->sig;}if (actual->dato==a){return 1;}else{return 0;}}int lista_dl::actualizar(int buscado, int nuevovalor){if (buscar(buscado)){actual->dato=nuevovalor;return 1;}else {return 0;}}int lista_dl::listar(void){temp=actual;while (temp->ant!=NULL){temp=temp->ant;}while (temp){coutsig;temp->ant=NULL;delete (actual);actual=temp;}else{temp1=actual->ant;temp2=actual->sig;temp1->sig=actual->sig;temp2->ant=actual->ant;delete (actual);actual=temp1;} }return 1;}else {return 0;}}int lista_dl::comprobarlista(void){if (actual==NULL){return 1;}else {return 0;}}void main (void){lista_dl a;int v, n, b, x, opc;do { clrscr(); cout