Código
/***************** Librerias *****************/ #include <stdio.h> #include <conio.h> #include <iostream.h> #include <stdio.h> #include <stdlib.h> /*Clase nodo*/ class nodo {public: char info[30]; nodo *sig; nodo *generar_nodo(char a[30]) {nodo *n; n=new nodo[30]; strcpy(n->info,a); n->sig=NULL; return n;} }; /*Clase lista*/ class lista_circular {public: nodo *cab; int cant; lista_circular() {cab=NULL; cant=0;} insertar(char a[30]); extraer(int dato2); mostrar(); }; /*Inserta en la lista*/ lista_circular::insertar(char a[30]) {char cad[30]; strcpy(cad,a); nodo *nuevo=nuevo->generar_nodo(a); if(!cab) {cab=nuevo; cab->sig=nuevo; cant++;} else{nodo *p; p=cab; while(p->sig!=cab) {p=p->sig;} p->sig=nuevo; p=p->sig; p->sig=cab; cant++;} } /*muestra la lista*/ lista_circular::mostrar() {nodo *p=cab; while(p->sig!=cab) {cout<<p->info<<endl; p=p->sig;} cout<<p->info<<endl;}//Cierro Mostrar /*Extrae de la lista*/ lista_circular::extraer(int dato2) {if(cab) {nodo *p,*q; p=cab; if(dato2==cant-5) {while(p->sig!=cab) {p=p->sig;} if(cab->sig==cab) {cab=NULL; cant--;} else{cab=cab->sig; p->sig=cab; cant--;} } else{if(dato2==cant) {while(p->sig!=cab) {p=p->sig;} p->sig=cab; cant--;} else{for(int i=0;i<dato2;i++) {q=p; p=p->sig;} q->sig=p->sig; cant--; delete p;}} }else{cout<<" NO EXISTE LISTA\n";} } main() {lista_circular obj; char nombre[30]; int aux=0; for(int i=0;i<5;i++) {cout<<"Digite El Nombre "<<i<<" De La Lista: "; gets(nombre); cout<<endl; obj.insertar(nombre);} clrscr(); obj.mostrar(); int aux2=obj.cant-1; for(int i=0;i<aux2;i++) {clrscr(); randomize(); aux=random(obj.cant)+1; cout<<"Cantidad De Elementos "<<obj.cant<<endl<<"Se Elimino El Elemento "<<aux<<" De La Lista."<<endl<<"Lista Actual: "<<endl; obj.extraer(aux); obj.mostrar(); getch();} getch();}