Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <stdlib.h>
#include <conio.h>
#include <stdlib.h>
int arr[10];
int t[10];
/*funciones de menu */
void menupila();
void menucola();
void menuordenamiento();
void menubusqueda();
void menurecurividad();
void menulistas();
void menulistassimples();
void menulistascirculares();
void menulistasdobles();
/* funcion pila*/
void agregar();
void eliminar();
void mostrar();
/* funcion cola*/
void agregarcola();
void eliminarcola();
void mostrarcola();
void ordenainsercion();
void ordenamiento_burbuja();
void busquesecuencial() ;
/* funciones recursivas */
int recursumavector();
/* funcion MCM */
int comunmultiplo();
void elementomayor();
/* funciones listas */
/* listas sencillas */
void adicionar_inicio_sencilla();
void adicionar_final_sencilla();
void eliminar_inicio_sencilla();
void eliminar_final_sencilla();
void mostrar_lista_sencilla();
void adicionar_valor_sencilla();
void adicionar_posicion_sencilla();
void eliminar_valor_sencilla();
void eliminar_posicion_sencilla();
/* listas circulares */
void adicionar_inicio_circular();
void adicionar_final_circular();
void eliminar_inicio_circular();
void eliminar_final_circular();
void mostrar_lista_circular();
void adicionar_valor_circular();
void adicionar_posicion_circular();
void eliminar_valor_circular();
void eliminar_posicion_circular();
/* listas dobles */
void adicionar_inicio_doble();
void adicionar_final_doble();
void eliminar_inicio_doble();
void eliminar_final_doble();
void mostrar_lista_doble();
void adicionar_valor_doble();
void adicionar_posicion_doble();
void eliminar_valor_doble();
void eliminar_posicion_doble();
/* Definicion de estructuras */
struct nodo
int info;
nodo *sig;
} *cab=NULL,*ult=NULL,*p,*q,*aux;
struct nodoc
int info;
nodoc *sig;
}*cabc=NULL,*ultc=NULL,*pc,*qc,*auxc;
struct nodod
{
int info;
nodod *sig;
nodod *ant;
}*cabd=NULL,*ultd=NULL,*pd,*qd,*auxd,*r;
struct nodop
int info;
nodop *ant;
}*Aux,*Cab=NULL;
struct cola
int dato;
cola *siguiente;
}*Auxiliar,*Ultimo,*Cabecera=NULL;
/*----------------------------------------------MENU PRINCIPAL------------------------------------------*/
void menu()
while (opc != 7)
clrscr();
cout<<"1. Pila\n";
cout<<"2. Cola\n";
cout<<"3. Ordenamiento\n";
cout<<"4. Busqueda\n";
cout<<"5. Recursividad\n";
cout<<"6. Listas\n";
cout<<"7. Salir\n";
cin>>opc;
switch (opc)
/*------------------------------------------MENU PILA-------------------------------------------------*/
void menupila()
while (opc != 4)
clrscr();
cout<<"4. Regresar\n";
cout<<"ingrese opcion :";
cin>>opc;
switch (opc)
/*------------------------------------------MENU COLA----------------------------------------------*/
void menucola()
opc=0;
while (opc != 4)
{
clrscr();
cout<<"4. Regresar\n";
cin>>opc;
switch (opc)
}
}
/*-------------------------------------MENU ORDENAMIENTO-----------------------------------------*/
void menuordenamiento()
opc=0;
clrscr();
cout<<"1. Insercion\n";
cout<<"2. Burbuja\n";
cout<<"3. Regresar\n";
cin>>opc;
switch (opc)
/*-------------------------------------MENU BUSQUEDA-----------------------------------------*/
void menubusqueda()
opc=0;
clrscr();
cout<<"1. Secuencial\n";
cout<<"2. Binario\n";
cout<<"3. Regresar\n";
cin>>opc;
switch (opc)
/*-------------------------------------MENU RECURSIVIDAD-----------------------------------------*/
void menurecurividad()
opc=0;
clrscr();
cout<<"4. Regresar\n";
cin>>opc;
switch (opc)
/*----------------------------------------------MENU LISTAS------------------------------------------*/
void menulistas()
{
while (opc != 4)
clrscr();
cout<<"4. Vovler\n";
cin>>opc;
switch (opc)
}
}
void menulistassimples()
opc=0;
while (opc != 4)
clrscr();
cout<<"1. Adicionar\n";
cout<<"2. Eliminar\n";
cout<<"3. Mostrar\n";
cout<<"4. Regresar\n";
cin>>opc;
switch (opc)
{
case 1:
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
cin>>opcl;
switch (opcl)
break;
case 2:
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
cout<<"ingrese opcion :";
cin>>opcl;
switch (opcl)
break;
}
/*------------------------------------------MENU LISTAS CIRCULARES-------------------------------------------------*/
void menulistascirculares()
opc=0;
while (opc != 4)
clrscr();
cout<<"1. Adicionar\n";
cout<<"2. Eliminar\n";
cout<<"3. Mostrar\n";
cout<<"4. Regresar\n";
cin>>opc;
switch (opc)
case 1:
/* ---------- SUB MENU ADICIONAR CIRCULARES -------- */
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
cin>>opcl;
switch (opcl)
break;
case 2:
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
switch (opcl)
break;
}
}
void menulistasdobles()
opc=0;
while (opc != 4)
clrscr();
cout<<"1. Adicionar\n";
cout<<"2. Eliminar\n";
cout<<"3. Mostrar\n";
cout<<"4. Regresar\n";
cin>>opc;
switch (opc)
{
case 1:
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
cin>>opcl;
switch (opcl)
{
///////////////LLAMADO A LAS FUNCIONES DEL MEN? DE ADICIONAR EN LISTAS
DOBLES /////////////////////////////////////////////////
break;
case 2:
opcl=0;
while (opcl != 5)
clrscr();
cout<<"5. Volver\n";
cin>>opcl;
switch (opcl)
break;
case 3: mostrar_lista_doble(); break;
/* ********************************************************************************************* */
void agregar(){
Aux=new nodop;
Cab=Aux;
Cab->ant=NULL;
else { // SI CABECERA TIENE POR LO MENOS ENTONCES SE PROCEDE A ASIGNAR EL DATO A UN NODO SIGUIENTE
Aux->ant=Cab;
Cab=Aux;
}
void eliminar(){
else{
if(Cab->ant==NULL){ //////////SI LA PILA TIENE POR LO MENOS UN DATO, ENTONCES SE PROCEDE A HACER LA
ELIMINACION
cout<<"Se Elimino: " << Cab->info<<endl; //////////SE ELIMINA EL ULTIMO DATO INGRESADO/////////////
else{ ///////SI LA PILA TIENE VARIOS DATOS SE ELIMINA EL ULTIMO DATO INGRESADO/////////
Aux=Cab;
Cab=Cab->ant;
system("PAUSE");
void mostrar(){
Aux=Cab;
cout<<Aux->info<<endl;
Aux=Aux->ant;
system("PAUSE>NULL");
}
/*******************************************************COLAS***************************************************/
void agregarcola(){
Auxiliar=new cola;
cout<<"ingrese datos para la cola"<<endl; //////////SE PIDE AL USUARIO INGRESAR ELEMENTO A LA COLA//////
Ultimo=Auxiliar;
Ultimo->siguiente=NULL; //////////////////////////////////////////////////////
void eliminarcola(){
if(Cabecera==NULL){ ////////////////// SE COMPRUEBA CON UN CONDICIONAL QUE LA COLA ESTE VACIA O NO//////////////
cout<<"La cola esta vacia"<<endl;////////////////// SI ESTA VACIA ENTONCES SE IMPRIME ESTE MENSAJE///////////////
}
delete Cabecera; //////////////////SE ELIMINA EL DATO, COMO SE TRATA DE COLA ENTONCES ESE DATO ES EL PRIMER
DATO INGRESADO///
Cabecera=NULL;
Auxiliar=Cabecera;
cout<<"se elimino " << Auxiliar->dato<<endl; /////////SE PROCEDE A HACER LA ELIMINACION DEL PRIMER DATO DE LA
COLA//////
delete Auxiliar;
system("PAUSE");
cout<<endl;
}
void mostrarcola(){
if(Cabecera==NULL){ ////////////CON ESTE CONDICIONAL SE COMPRUEBA QUE LA COLA ESTE VACIA O NO//////////
cout<<"no hay ningun numero de cedula para mostrar"<<endl;//////// SI ESTA VACIA SE IMPRIME ESTE MENSAJE EN
PANTALLA////////
Auxiliar=Cabecera;
while(Auxiliar!=NULL){ /////////CICLO REPETITICO HASTA QUE EL DATO AUXILIAR SEA UN DATO VACIO O NULL//////////////
system("PAUSE");
void ordenainsercion()
clrscr();
cout<<"digite tama?o del vector:\n"; //////////SE PIDE AL USUARIO INGRESAR LA MAGNITUD DEL
VECTOR//////////////////////////////////////
cout<<"este es tu vector:\n";
cout<< v[i] << " "; ///////////SE MUESTRA EL VECTOR COMPLETO QUE EL USUARIO INGRESO////////////
}
for (i = 1; i < N; i++)
temporal = v[i];
for (j = i; j > 0 && v[j - 1] > temporal; j--) //////SE AGREGA UN CONFDICIONAL///////
v[j] = temporal;
getch();
/*-------------------------------ORDENAMIENTO BURBUJA-------------------------------------------*/
void ordenamiento_burbuja()
{int n,aux;
aux = v[i]; ///////////////////AUXILIAR TOMA VALORES PARA INTERCAMBIAR LOS ELEMENTOS ASCENDENTEMENTE//////////
v[i]=v[j];
v[j]=aux;
getch();
/* ********************************************************************************************* */
void busquesecuencial()
clrscr();
cout<<"\tBusqueda secuencialt\n";
for (i=0; i< n; i++) { //////////////CICLO REPETITIVO DESDE 0 HASTA LA POCICION N///////////
cout<<"digite un elemento\n";
cout<<endl;
bool bandera=false; /////////SE CREA UN TIPO BOOL PARA ALERTAR CUANDO SE ENCUENTRE EL NUMERO A BUSCAR///////////
i=0;
break;
i++;
if(bandera == false){ /////SI LA BANDERA DESPUES DE TODO SIGUI SIENDO FALSA, NO SE ENCONTRO EL ELEMENTO O NO EXISTE DENTRO
DEL ARREGLO
else if(bandera ==true){ ///////////// SI LA BANDERA CAMBIO A VERDADERO SE IMPRIME LA POSICION DEL NUMERO A BUSCAR//////////
}
getch(); ////////////////// ESPERANDO TECLA ALEATORIA PRESIONADA POR EL USUARIO//////////
int i;
for(i=0;i<n;i++)
cout<<" A["<<i+1<<"]=";
int i;
for(i=0;i<n;i++)//recorre el arreglo
cout<< V[i]<<"\t";
}
cout<<endl<<endl;
int i,j,k;
float temp;
for(i=0;i<n-1;i++)
k=i;
// para luego compararlo con los demas valores del arreglo hasta encontrar el menor valor
for(j=i+1;j<n;j++)
if(V[j]<temp)// si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posicion,los mismos pasos se repetira hasta que arreglo sea ordenado completamente
k=j;
temp=V[j];
V[k]=V[i] ;
V[i]=temp;
int mitad,izq,der;
izq=0;
der=n-1;
while(izq<=der)//el elemento que esta ala izquierda debe de ser menor que el de la derecha
if(dato>V[mitad])//si el elemento buscado es mayor que el centro entonces buscamos en la segunda mitad del arreglo
else if(dato<V[mitad])//si el elemento buscado buscado es menor que la mitad entonces buscamos en la primera mitad del arreglo
der=mitad-1;
int busquebinaria()
int n,p=0,dato;
int pos;
clrscr();
cout<<"\tBusqueda binaria\n";
cin>>n;
cout<<"vector ingresado"<<endl;
reportarVector(A,n);
ordenarSeleccion(A,n);
reportarVector(A,n);
////// SE INGRESA , REPORTA Y SE ORDENA LOS VECTORES///////
cin>>dato;
else
getch();
/* ********************************************************************************************* */
int recursumavector()
{
int i, n, re;
clrscr();
cin>>n;
for (i=0; n>i; i++) ///////////CONDICIONAL DONDE SE AGREGA UN DATO QEU SERA IGUAL A 0, EL DATO SERA MENOR QUE EL TAMAÃ'O DEL
VECTOR Y VA DE UNO EN UNO//////////
cin>>t[i];
getch();
return 0;
{
int r = 0;
if(n==0){
r += t[0];
}else{
r = t[n] + sumaVector(t,n-1);
return r;
/*------------------------------------------RECURISVIDAD MCM-----------------------*/
int comunmultiplo()
clrscr();
cout<<"Valores: \n";
cin>>n1;
cin>>n2;
getch();
return 0;
int aux=1;
while(n1%div==0 || n2%div==0){ //////UN CICLO REPETITIVO DONDE SE HACE UNA COMPARACION DE DIVICION////////
aux*=div;
if(n1%div==0) ///////NUEVO CONDICIONAL DONDE EL NUMERO SERA DIVIDIDO Y TENDRA QUE DAR IGUAL A 0/////////
n1/=div;
if(n2%div==0)
n2/=div; ////////// SI SE CUMPLE ESTA FUNCION EL CONDICIONAL FUNCIONARA SINO SE AGREGA OTRO CONDICIONAL///////
if(div<=n1||div<=n2)
aux*=mcm(div+1,n1,n2);
return aux;
}
if(n>9) return pos; ///////////// CONDICIONAL DONDE N SERA MAYOR A EL NUMERO 9 QUE SERIA EL NUMERO TOTAL DE LAS POSICION//////
else
return verElementoMayor(n+1,pos);
int t, i;
clrscr();
cout<<"\tElemento mayor de un vector\n"; /////////SE ELIMINA EL NUMERO MAYOR DEL VECTOR////////
cout<<"Digite el tama�o del vector " ; //////////SE PIQUE QUE EL USUARIO INGRESE TAMAÃ'O//////
cin>>t;
cin>>arr[i];
getch();
/* ********************************************************************************************* */
void adicionar_inicio_sencilla()
{
aux=new(nodo); ///////SE AÃ'ADE UN NUEVO NODO///////
cin>>aux->info;
if (cab==NULL) ///////////SE HACE UNA COMPARACION DONDE CABESERA SERA IGUAL A NULL/////////
ult=aux;
ult->sig=NULL;
aux->sig=cab;
cab=aux;
ult->sig=NULL;
///////SIMPLEMENTE EL SINO LO QUE HACE ES QUE EL ELEMNTO QUE ESTA EN EL NODO SERA RODADA UNA O CUNTAS VECES PARA QUE
EL NUEVO VALOR INGRESADO SE COLOQEU DE PRIMERO/////
}
/* ------------------------------------ ADICIONAR AL FINAL SENCILLA---------------*/
void adicionar_final_sencilla()
cin>>aux->info;
cab=aux;
ult=aux;
ult->sig=NULL;
else
ult->sig=aux; ////////ULTIMO APUNTARA A SIGUIENTE Y EL VALOR INGRESADO SERA COLOCADO EN EL NODO CREADO///////
ult=aux;
ult->sig=NULL;
}
void eliminar_inicio_sencilla()
cout<<"Lista vacia";
else
if(cab==ult)
ult=NULL;
else
p=cab;
cab=cab->sig; ///////////CABERCERA SERA IGUAL A VALOR INGRESADI /////////
cout<<"Ha sido eliminado el valor del inicio:"<<p->info; ///////////SE ELIMINA EL VALOR DEL INICIO/////////
getch();
void eliminar_final_sencilla()
cout<<"Lista vacia";
else
ult=NULL;
else
p=cab;
while(p->sig!=ult) //////UN CICLO DONDE P PUNTA A SIGUIENTE Y ESTE SERA DIDIFERNE DE ULTIMO /////
ult=p;
getch();
cout<<"Lista vacia";
getch();
else
cout<<"Esta es la lista\n"; /////////MUESTRA MENSAJE DONDE DIGA EN QUE ESTA LA LISTA /////////
p=cab;
while(p!=NULL) ///////MIENTRAS QUE P SEA DIFERENTE DE NULL OSEA MIENTRAS QUE P NO ESTE VACIA//////
p=p->sig;
nume++;
}
getch();
void adicionar_valor_sencilla()
getch();
else
}
else
p=cab;
while(p!=NULL && p->info!=valor) ///// MIENTRAS P NO ETSE VACIA TENDRA UN PARAMETRO Y ESTE APUNTA AINFO Y SERA DIFERNTE A
VALOR//////
getch();
else
q=cab;
}
aux=new(nodo); ////////SE CREA UN NUEVO NODO/////////
q->sig=aux;
aux->sig=p;
void adicionar_posicion_sencilla()
adicionar_inicio_sencilla();
else
{
getch();
else
p=cab;
cont++;
if(pos==cont+1)
adicionar_final_sencilla();
else
{
cout<<"Posicion no valida, fuera de rango"; /////////EL VERIFICA QUE LA POCISION SE ENCUENTRE O NO///////
getch();
p=cab;
for(i=1;i<=pos;i++) //////PARA QUE I SEA IGUAL A 1 Y SEA MENPR O IGUAL QUE LA POCISION Y VAYA DE UNO EN UNO//////
p=p->sig;
q=cab;
q=q->sig;
q->sig=aux;
aux->sig=p;
void eliminar_valor_sencilla()
if (cab==NULL)
cout<<"Lista vacia";
getch();
else
eliminar_inicio_sencilla();
else
p=cab;
while(p!=NULL && p->info!=valor) //////MIENTRAS QUE P NO ESTE VACIO EL APUNTARA A INFO QUE TENDRIA QUE SER DIFERENTE DE EL
VALOR INGRESADO//////
p=p->sig;
if(p==NULL)
getch();
else
q=q->sig;
q->sig=p->sig;
free(p);//////LIBERA ESPACIO///////
getch();
void eliminar_posicion_sencilla()
cin>>pos;
eliminar_inicio_sencilla();
}
else
getch();
else
cont=0;
p=cab;
p=p->sig;
cont++;
eliminar_final_sencilla();
}
else
if(pos<1||pos>cont+1)
getch();
p=cab;
for(i=1;i<=pos;i++) ////////PARA QUE I SEA IGUAL A 1 Y SEA MAYOR O IGUAL A POSICION Y VAYA DE 1 EN 1////////
p=p->sig;
q=cab;
q=q->sig;
q->sig=p->sig;
getch();
void adicionar_inicio_circular()
cin>>auxc->info;
{
cabc=auxc; ////SE TOMA EL VALOR INGRESADO COMO CABECERA
void adicionar_final_circular()
{
cabc=auxc; ////SE TOMA EL VALOR INGRESADO COMO CABECERA
void eliminar_inicio_circular()
getch();
}
else ///SINO, SI LA LISTA TIENE POR LO MENOS UN DATO...
cabc=cabc->sig; //CABECERA AHORA SERA CABECERA QUE APUNTA A SIGUIENTE, ES DECIR SU PROXIMA POSICION EN LISTA
cout<<"Ha sido eliminado el valor:"<<pc->info; //MENSAJE QUE AVISA LA ELIMINACION DEL PRIMER ELEMENTO DE LA LISTA
}
/* ------------------------------------ ELIMINAR AL FINAL CIRCULAR---------------*/
void eliminar_final_circular()
getch();
while(pc->sig!=ultc) //SE INICIA UN CICLO HASTA QUE PC->SIGUIENTE SEA DIFERENTE AL ULTIMO NODO
{
cout<<"Ha sido eliminado el valor:"<<ultc->info; //MENSAJE QUE AVISA SA ELIMINACION DEL ULTIMO ELEMENTO DE LA LISTA
getch();
void mostrar_lista_circular()
clrscr();
int nume=0;
cout<<"Lista vacia";
getch();
cout<<"Esta es la lista\n";
pc=cabc;
cout<<nume<<". "<<pc->info<<"\n"; ////////LO QUE MOSTRARA SERAN LOS DATO MIENTRAS DURE EL CICLO//////////
pc=pc->sig;
nume++;
cout<<nume<<". "<<ultc->info;
getch();
void adicionar_valor_circular()
{
if (cabc==NULL)/////////////SI CABECERA ESTA VACIA ENTONCES SE PROCEDE A LISTA/////
cout<<"Lista vacia";
getch();
else
cin>>valor;
else
pc=cabc->sig;
while(pc!=cabc && pc->info!=valor) ///////////////UN CICLO WHILE DONDE PC TIENE QUE SER DIFERENTE DE CABECERA Y DIFERENTE AL
VALOR INGRESADO///////////
getch();
else
qc=cabc;
while(qc->sig!=pc) ///////////////UN CICLO WHILE DONDE QC APUNTARA A SIG QUE ES DIFERENTE A PC///////////
qc=qc->sig;
cin>>auxc->info;
qc->sig=auxc;
auxc->sig=pc;
}
}
void adicionar_posicion_circular()
cin>>valor;
cin>>valor;
cin>>pos;
if(pos==1)
adicionar_inicio_circular();
else
getch();
}
cont=1; ///CONTADOR///
pc=cabc->sig;
while(pc!=cabc) ///////////UN CICLO WHILE DONDE PC TIENE QUE SER DIFERENTE DE CABECERA///////////
if(pos==cont+1)
adicionar_final_circular();
else
if(pos<1||pos>cont+1)
getch();
}
pc=cabc;
for(i=1;i<=pos;i++)///////////UN CICLO FOR DONDE I ES IGUAL 1, I MENOR O IGUAL A POS QUE IRA INCREMENTANDO///////////
qc=cabc;
while(qc->sig!=pc)///////////////UN CICLO WHILE DONDE QC APUNTARA A SIG QUE SER DIFERENTE DE PC///////////
cout<<"Digite la informacion";
}
/*------------------------------------- ELIMINAR POR VALOR CIRCULAR ------------------*/
void eliminar_valor_circular()
getch();
else //////////////// SI NO SE MANDA UN MENSAJE DONDE DIGA QUE EL ELEMENTO ESTA EN LA LISTA/////////////////
cout<<"digite el valor"; ////////LO QUE MUESTRARA SERA EL DATO QUE SE DIGITO POR PANTALLA//////////
cin>>valor;
eliminar_inicio_circular();
else //////////////// SI NO SE MANDA UN MENSAJE DONDE DIGA QUE EL ELEMENTO ESTA EN LA LISTA/////////////////
getch();
else
qc=cabc;
void eliminar_posicion_circular()
cin>>pos;
if(pos==1)
eliminar_inicio_circular();
else
cout<<"Lista vacia";
getch();
else
cont=0; /////CONTADOR/////
if(pos==cont+1)
eliminar_final_circular();
else
if(pos<1||pos>cont+1)
for(i=1;i<=pos;i++) /////////UN CICLO FOR DONDE I ES IGUAL 1, I MENOR O IGUAL A POS QUE IRA INCREMENTANDO////////
qc=cabc;
while(qc->sig!=pc) /////UN CICLO WHILE DONDE QC APUNTARA SIG QUE ES DIFERENTE DE PC//////
getch();
}
/* ################################ DOBLES ##########################*/
void adicionar_inicio_doble()
else
void adicionar_final_doble()
else
{
void eliminar_inicio_doble()
getch();
else
{
free(cabd);///LIBERA ESPACIO EN LA CABECERA////
ultd=NULL;
else
pd=cabd;
cabd=cabd->sig;
cout<<"Ha sido eliminado el valor:"<<pd->info;////SE MOSTRARA UN MSJ QUE A SIDI ELIMINADO EL VALOR///
getch();
void eliminar_final_doble()
cout<<"Lista vacia";
getch();
else
ultd=NULL;
else
ultd->sig=NULL;
getch();
}
void mostrar_lista_doble()
clrscr();
getch();
else
pd=cabd;
{
cout<<nume<<". "<<pd->info<<"\n";
nume++;
getch();
void adicionar_valor_doble()
getch();
else
cin>>valor;////LEER EL VALOR///
if(valor==cabd->info)///SI VALOR SE ENCUENTRA EN CABECERA QUE APUNTA A INFO///
adicionar_inicio_doble();
else
pd=cabd;
while(pd!=NULL && pd->info!=valor) ///UN CICLO WHILE DONDE PD SERA DIFERENTE DE VACIA Y PD APUNTARA A INFO QUE DIDERENTE
O IGUAL A VALOR//////)
getch();
else
{
qd=pd->ant;
void adicionar_posicion_doble()
if(pos==1)
{
adicionar_inicio_doble();
else
getch();
else
cont=0;///CONTADOR///
pd=cabd;
if(pos==cont+1)
{
adicionar_final_doble();
else
getch();
pd=cabd;
pd=pd->sig;
qd=pd->ant;
qd->sig=auxd;
auxd->ant=qd;
auxd->sig=pd;
pd->ant=auxd;
void eliminar_valor_doble()
getch();
else
cin>>valor;///LEERA EL VALOR///
eliminar_inicio_doble();
else
pd=cabd;
while(pd!=NULL && pd->info!=valor)////UN CICLO WHILE DONDE PD SEA DIFERENTE O IGUAL A VACIO Y
pd=pd->sig;
getch();
else
r=pd->sig;
r->ant=qd;
getch();
void eliminar_posicion_doble()
cin>>pos;//LEERA LA POSICION//
if(pos==1)
eliminar_inicio_doble();
}
else
getch();
else
cont=0;////CONTADOR//
pd=cabd;
cont++;///CONTADOR///
if(pos==cont+1)
eliminar_final_doble();
}
else
if(pos<1||pos>cont+1)
getch();
pd=cabd;
pd=pd->sig;
qd=pd->ant;
qd->sig=pd->sig;
r=pd->sig;
r->ant=qd;
getch();
}
}
/************************************************MAIN*********************************************/
main ()
system("color F5");
menu();