Post on 05-Jul-2018
8/15/2019 Para Ayuda de EDA
1/31
PROGRAMA CON VARIOS MENUS...!!!
#include #include #include
struct nodo{ int nro;
struct nodo *sgt; struct nodo *ant;};
typedef struct nodo *Tlista;
void InsertaInicio(Tlista &lista, int valor){ Tlista p=new(struct nodo);
p->nro=valor; if(lista==NULL) { lista=p; p->sgt=NULL; p->ant=NULL; }
else
{ p->sgt=lista; p->ant=lista->ant; lista->ant=p; lista=p; }}
void InsertaFinal(Tlista &lista,int valor){ Tlista q,p=new(struct nodo);
p->nro=valor; q=lista; if(lista==NULL) { lista=p;
p->sgt=NULL; p->ant=NULL; } else { while(q->sgt!=NULL) { q=q->sgt; } p->sgt=q->sgt; q->sgt=p; p->ant=q; }}
void visualizar(Tlista lista){ int i=1;
while(lista!=NULL){ cout
8/15/2019 Para Ayuda de EDA
2/31
void EliminaLista(Tlista &lista){ lista=NULL;}
void EliminaElem(Tlista &lista,int elem){ Tlista p=lista;
int existe=0; while(p!=NULL) { if(p->nro==elem) { if(p->ant==NULL && p->sgt==NULL)//es el unico elemento en la lista { p==NULL; lista=p; goto fin; } else { if(p->ant==NULL) // cuando el elemento esta al inicio { lista->sgt->ant=NULL; lista=lista->sgt; } else { if(p->sgt==NULL)//cuando el elemento se encuentra al final
{ p->ant->sgt=NULL; p=p->sgt; } else { p->ant->sgt=p->sgt; p->sgt->ant=p->ant; p=p->ant; } } } existe=1; } p=p->sgt;
} fin: if(existe==1) cout
8/15/2019 Para Ayuda de EDA
3/31
int pos=2;if(listaA!=NULL)
{ while(p!=NULL) { p=p->sgt; pos++; if(pos==x) { p->sgt=listaB; listaB=p->sgt->ant; lista=listaA; } } } else { lista=listaB; listaA=NULL; listaB=NULL; }}
void DividePos(Tlista &lista,Tlista &listaA,Tlista &listaB,int x){ Tlista p=lista;
int pos,i; for(pos=0;p!=NULL;pos++) { p=p->sgt;
} p=lista; pos=x; for(i=1;p!=NULL;i++,p=p->sgt) { if(inro); else InsertaFinal(listaB,p->nro); }}
void UnelistaValor(Tlista &lista,Tlista &listaA,Tlista &listaB,int x){ Tlista p=listaA;
if(listaA!=NULL) { while(p->sgt!=NULL) { p=p->sgt; if(p->nro==x) { p->sgt=listaB; listaB=p->sgt->ant; lista=listaA; } } } else { lista=listaB; listaA=NULL;
listaB=NULL; }}
void DivideValor(Tlista &lista,Tlista &listaA,Tlista &listaB, int x){ Tlista p=lista;
int pos,pos1,i; for(pos=1;p->sgt!=NULL;pos++) { if(p->nro==x) pos1=pos;
8/15/2019 Para Ayuda de EDA
4/31
p=p->sgt; } p=lista;
cout
8/15/2019 Para Ayuda de EDA
5/31
EliminaElem(lista,elem); getch();clrscr();break; case 6: coutelem; if(BuscaElem(lista,elem,pos)==true) cout
8/15/2019 Para Ayuda de EDA
6/31
InsertaFinal(listaB,valor); } coutx; UnelistaValor(lista,listaA,listaB,x); visualizar(lista); getch();clrscr();break; case 10: coutn; for(i=1;i
8/15/2019 Para Ayuda de EDA
7/31
Tlista lista=NULL;int opc,valor,pos;bool R;do{cout
8/15/2019 Para Ayuda de EDA
8/31
}break;
case 4:cout
8/15/2019 Para Ayuda de EDA
9/31
lista = nu; }}
void InsertaAlFinal(Tlista&lista,int valor){Tlista pos,nu;nu = new (struct nodo);nu->nro = valor;pos = lista;
if(lista == NULL) {
lista = nu;lista->sgte = NULL;lista->ante = NULL; }else {
while (pos->sgte!= NULL) { pos = pos->sgte; }nu->sgte = pos->sgte;pos->sgte = nu;nu->ante = pos; }}
bool Busqueda(Tlista lista, int num,int& pos){
Tlista aux = lista;pos=0;while (aux != NULL) {
if (aux->nro == num){
return true; }aux = aux->sgte;pos++;
} return false;}
void EliminarLista(Tlista& lista){
lista = NULL;}
void Imprimir(Tlista lista){ Tlista aux = lista; int i = 0; while (lista != NULL)
{ cout
8/15/2019 Para Ayuda de EDA
10/31
void imprimeinver(Tlista lista){ Tlista aux=lista; int i=0; while(lista!=NULL) { cout
8/15/2019 Para Ayuda de EDA
11/31
aux->ante->sgte = aux->sgte;aux->sgte->ante = aux->ante;
aux = aux->ante;}
} }existe = true; }
aux = aux->sgte; }fin:if(existe) {
cout= aux2->nro){
cambiar = aux1->nro;aux1->nro = aux2->nro;
aux2->nro = cambiar;}aux2 = aux2->sgte;}aux1 = aux1->sgte;}
}}
----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------PROGRAMA SOBRE ENCUESTA
#include #include #include #include #include #include #include
8/15/2019 Para Ayuda de EDA
12/31
#define MAX 100
typedef struct{ char nombre[25]; int edad; char estado; }persona;
typedef struct{int calificacion;int comida;persona per;}gustos;
gustos prefe[MAX]; void leerentrada(int i); void escribirsalida(int i); void escribir_orden(int);/******************************************************/int main(){ int i,n; clrscr();
cout
8/15/2019 Para Ayuda de EDA
13/31
} /**************************************************************/
void escribirsalida(int i) { cout
8/15/2019 Para Ayuda de EDA
14/31
#include #include
struct nodo{ int nro;
struct nodo *sgt; struct nodo *ant;};
typedef struct nodo *Tlista;
void InsertaInicio(Tlista &lista, int valor){ Tlista p=new(struct nodo);
p->nro=valor; if(lista==NULL) { lista=p; p->sgt=NULL; p->ant=NULL; }
else { p->sgt=lista; p->ant=lista->ant; lista->ant=p;
lista=p; }}
void InsertaFinal(Tlista &lista,int valor){ Tlista q,p=new(struct nodo);
p->nro=valor; q=lista; if(lista==NULL) { lista=p; p->sgt=NULL; p->ant=NULL; }
else { while(q->sgt!=NULL) { q=q->sgt; } p->sgt=q->sgt; q->sgt=p; p->ant=q; }}
void visualizar(Tlista lista){ int i=1;
while(lista!=NULL)
{ cout
8/15/2019 Para Ayuda de EDA
15/31
void EliminaElem(Tlista &lista,int elem){ Tlista p=lista;
int existe=0; while(p!=NULL) { if(p->nro==elem) { if(p->ant==NULL && p->sgt==NULL)//es el unico elemento en la lista { p==NULL; lista=p; goto fin; } else { if(p->ant==NULL) // cuando el elemento esta al inicio { lista->sgt->ant=NULL; lista=lista->sgt; } else { if(p->sgt==NULL)//cuando el elemento se encuentra al final { p->ant->sgt=NULL; p=p->sgt; }
else { p->ant->sgt=p->sgt; p->sgt->ant=p->ant; p=p->ant; } } } existe=1; } p=p->sgt; } fin: if(existe==1)
cout
8/15/2019 Para Ayuda de EDA
16/31
{ p=p->sgt; pos++; if(pos==x) { p->sgt=listaB; listaB=p->sgt->ant; lista=listaA; } } } else { lista=listaB; listaA=NULL; listaB=NULL; }}
void DividePos(Tlista &lista,Tlista &listaA,Tlista &listaB,int x){ Tlista p=lista;
int pos,i; for(pos=0;p!=NULL;pos++) { p=p->sgt; } p=lista; pos=x;
for(i=1;p!=NULL;i++,p=p->sgt) { if(inro); else InsertaFinal(listaB,p->nro); }}
void UnelistaValor(Tlista &lista,Tlista &listaA,Tlista &listaB,int x){ Tlista p=listaA;
if(listaA!=NULL) { while(p->sgt!=NULL) { p=p->sgt;
if(p->nro==x) { p->sgt=listaB; listaB=p->sgt->ant; lista=listaA; } } } else { lista=listaB; listaA=NULL; listaB=NULL; }}
void DivideValor(Tlista &lista,Tlista &listaA,Tlista &listaB, int x){ Tlista p=lista;
int pos,pos1,i; for(pos=1;p->sgt!=NULL;pos++) { if(p->nro==x) pos1=pos; p=p->sgt; } p=lista;
8/15/2019 Para Ayuda de EDA
17/31
cout
8/15/2019 Para Ayuda de EDA
18/31
coutelem; if(BuscaElem(lista,elem,pos)==true) cout
8/15/2019 Para Ayuda de EDA
19/31
cin>>x; UnelistaValor(lista,listaA,listaB,x); visualizar(lista); getch();clrscr();break; case 10: coutn; for(i=1;i
8/15/2019 Para Ayuda de EDA
20/31
void imprimir(Tlista);
//cuerpo de la funcionvoid imprimir(Tlista lista) { if(lista==NULL) cout
8/15/2019 Para Ayuda de EDA
21/31
{ ant=p; p=p->sgte; } ant->sgte=NULL; } delete(p); }void elimina_elemento(Tlista &lista,int valor) { Tlista p,ant; p=lista; while(p!=NULL) { if(p->n==valor) { if(p==lista) lista=lista->sgte; else ant->sgte=p->sgte; delete(p); return; } ant=p;
p=p->sgte; } }void elimina_lista(Tlista &lista) { Tlista p; while(lista!=NULL) { p=lista; lista=lista->sgte; delete(p); } }
void media(Tlista lista) { Tlista q; int i=0; int p; q=lista; while(q!=NULL) { i++;
q=q->sgte; }
cout
8/15/2019 Para Ayuda de EDA
22/31
return; }
else { q=q->sgte;
} }
else { if(p==(i+1)/2)
{ coutsgte=r->sgte;r=r->sgte;
delete(a);}
else {t=r; r=r->sgte; } }
p=p->sgte; }
}
void unelista(Tlista &lista1, Tlista &lista2, Tlista &lista3)
8/15/2019 Para Ayuda de EDA
23/31
{ Tlista t; t=lista1; if(lista1!=NULL) {
while (t->sgte!=NULL) {
t=t->sgte; }
t->sgte=lista2; lista3=lista1;
} else { lista3=lista2;
} lista1=NULL; lista2=NULL; } void mayorlista(Tlista lista) { int mayor=0; while(lista!=NULL)
{
if (lista->n>mayor) { mayor=lista->n;
} lista=lista->sgte;
} coutsgte;
t=a;
8/15/2019 Para Ayuda de EDA
24/31
a=a->sgte; delete(t); }
else { p=a;
a=a->sgte; } }
m=lista; lista=lista->sgte; delete(m); }void numerosprimos(Tlista lista) { int band; int num; while(lista!=NULL)
{ num=lista->n;
band=1; for(int i=2; in>t->n) { tmp=p->n;
p->n=t->n; t->n=tmp; } else { p=t; t=t->sgte; } } marca=p;
}
8/15/2019 Para Ayuda de EDA
25/31
} }
//**************************funcion main**************************************// void main() { Tlista lista1,lista2,lista3,lista; lista1=lista2=lista3=lista=NULL; int valor; char opc,opcion; textbackground(BLUE); do { clrscr(); cout
8/15/2019 Para Ayuda de EDA
26/31
cout
8/15/2019 Para Ayuda de EDA
27/31
break; case 'n':{clrscr(); cout
8/15/2019 Para Ayuda de EDA
28/31
} //cuerpo de la funcion// void push(Pila &p,int n) {Pila q=new(struct nodo); q->nro=n; q->sig=p; p=q;}
int pop(Pila &p){int n=p->nro;Pila q=p;p=p->sig;delete(q);return n;}
void eliminapila(Pila &p){Pila q;while(p!=NULL) {q=p; p=p->sig; delete(q); }
}
void imprimirpila(Pila p){while(p!=NULL) {cout
8/15/2019 Para Ayuda de EDA
29/31
p->pto=pto; p->sgt=NULL; if(q.del==NULL) q.del=p; else (q.atr)->sgt=p; q.atr=p;}
void vercola(struct cola q){ struct nodo*p;
p=q.del; while(p!=NULL) { cout
8/15/2019 Para Ayuda de EDA
30/31
} return false;}
void ordenar(struct cola&q){ struct nodo*p=q.del,*aux1,*aux2;
if(p!=NULL) { aux1=p,aux2=p->sgt; int cambio;string nom; while(aux1!=NULL) { aux2=aux1->sgt; while(aux2!=NULL) { if(aux1->ptopto) { cambio=aux1->pto;nom=aux1->nom; aux1->pto=aux2->pto;aux1->nom=aux2->nom; aux2->pto=cambio;aux2->nom=nom; } aux2=aux2->sgt; } aux1=aux1->sgt; } }}
void main(){ struct cola q;
string nom;int op,x,i,pto,pos;
inicializa(q); do { cout
8/15/2019 Para Ayuda de EDA
31/31
cout