Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
sitio a otro, el conductor maneja desde un ";cin>>palabra2; cout<<"IR AL PUNTO FINAL :"<<endl;
pueblo de origen a otro de destino, cout<<endl; for(int i=0;i <j;i++)
pasando por otros pueblos. Muestre el camino j= strlen(palabra2); { cout<<palabra2[i]<<" ";
con destino de origen a destino. for(int i=0;i <j;i++) }
{ push(p,palabra2[i]);
#include<iostream.h> } }
#include<conio.h> imprime_ida();
#include<string.h> cout<<endl; ****************************************
imprime_regreso(p); ************************
struct nodo getch();
{ char palabra; } 3) Multiplique todos los elementos de una pila
struct nodo *sgte; por un valor, solo debe utilizar push y poop.Los
}; void push(Pila &p,char valor) elementos de la pila resultante
typedef nodo *Pila; { Pila q=new(struct nodo); deberan estar en el orden original.
void push(Pila &,char); q->palabra=valor;
void imprime_regreso(Pila &); q->sgte=p;
void imprime_ida(); p=q;
Pila p=NULL; } #include<iostream.h>
char palabra2[20]; void imprime_regreso(Pila &p) #include<string.h>
{ cout<<"REGRESO AL PUNTO INICIAL #include<conio.h>
void main() :"<<endl; #define lim 50
{ clrscr(); while(p!=NULL)
int band=1,j; { cout<<p->palabra<<" "; struct nodo {int nro;
cout<<"pueblos en la ruta de p=p->sgte; struct nodo *sig; };
carreteras"<<endl; } typedef struct nodo *Pila;
cout<<"A B C D E F G H I J K L M N O P Q cout<<endl; void imprimirpila(Pila);
"<<endl; } void push(Pila &,int );
int pop(Pila &);
void imprime_ida()
void main() typedef nodo *ptrPila;
{ int pop(Pila &p)
Pila p=NULL; {int valor=p->nro; void imprimir(ptrPila);
int n; Pila q=p; void eliminaPila(ptrPila &);
int k,y; p=p->sig; void push(ptrPila &, int);
int i; delete(q); int pop(ptrPila &);
int v[lim]; return valor;
cout<<"\n\tINGRESE UN VALOR PARA } void main(void)
MULTIPLICAR:";cin>>k; { ptrPila p=NULL;
cout<<"\n\tINGRESE EL LIMITE DE LA void imprimirpila(Pila p) int opc,n;
PILA:";cin>>n; { do{
for(i=0;i<n;i++) while(p!=NULL) cout<<"1 Apilar"<<endl;
{ { cout<<"2 Desapilar"<<endl;
cout<<"\n\telemento: ["<<i<<"] cout<<p->nro<<endl; cout<<"3 Ver pila"<<endl;
:";cin>>v[i]; p=p->sig; cout<<"4 Eliminar Pila"<<endl;
y=k*v[i]; } cout<<"5 Salir"<<endl;
push(p,y); cout<<endl; cout<<"Ingrese una opcin";
} } cin>>opc;
cout<<"\n\tLA PILA MULTIPLICADO POR switch(opc)
UN VALOR ES: "<<endl; **************************************** {case 1:cout<<"Apilar Valor"; cin>>n;
imprimirpila(p); *********************** push(p,n);
getch(); break;
}
//cuerpo de la funcion// #include<iostream.h> case 2:if(p!=NULL)
void push(Pila &p,int n) #include<conio.h> { cout<<"Valor
{Pila q=new(struct nodo); Eliminado";
q->nro=n; // Definicin de la estructura n=pop(p);
q->sig=p; struct nodo{ int nro; cout<<n<<endl;
p=q; struct nodo * sgte;}; }
}
else cout<<"Pila //Funcin para eliminar la pila void imprimir(ptrPila);
vacia"<<endl; void eliminaPila(ptrPila &p) void eliminaPila(ptrPila &);
break; { ptrPila q; void push(ptrPila &, int);
case 3:cout<<"Contenido de la while(p!=NULL) int pop(ptrPila &);
pila"<<endl; {q=p; void main(void)
imprimir(p); p=p->sgte; { ptrPila p=NULL;
break; delete(q); int opc,n,i,valor;
case 4:eliminaPila(p); } do{
cout<<"Pila } cout<<"1 Apilar"<<endl;
destruida"<<endl; //Funcin para visualizar elementos en la pila cout<<"2 Desapilar"<<endl;
break; void imprimir(ptrPila p) cout<<"3 Ver pila"<<endl;
} { while(p!=NULL) cout<<"4 Eliminar Pila"<<endl;
}while(opc!=5); {cout<<p->nro<<endl; cout<<"5 Salir"<<endl;
} p=p->sgte; cout<<"Ingrese una opcin";
} cin>>opc;
//Funcin para insertar elementos en la pila cout<<endl; switch(opc)
void push(ptrPila &p, int n) } {case 1:cout<<"cantidad de elementos";
{ ptrPila q=new(struct nodo); cin>>n;
q->nro=n; for(i=0;i<n;i++)
q->sgte=p; **************************************** { cout<<"ingresar los elementos:";cin>>valor;
p=q; ****************************** push(p,valor);
} //multiplicar el elemento ingresado por 2 y luego } break;
//Funcin para eliminar elementos en la pila mostrar los elementos de la pila multiplicados.
int pop(ptrPila &p) case 2:if(p!=NULL)
{ int n=p->nro; #include<iostream.h> { cout<<"Valor
ptrPila q=p; #include<conio.h> Eliminado";
p=p->sgte; // Definicin de la estructura n=pop(p);
delete (q); struct nodo{ int nro; cout<<n<<endl;
return n; struct nodo * sgte;}; }
} typedef nodo *ptrPila;
else cout<<"Pila void eliminaPila(ptrPila &p) #include<conio.h>
vacia"<<endl; { ptrPila q; #include<string.h>
break; while(p!=NULL)
case 3:cout<<"Contenido de la {q=p; struct nodo
pila"<<endl; p=p->sgte; {char c[15];
imprimir(p); delete(q); struct nodo *sgt;
break; } };
case 4:eliminaPila(p); }
cout<<"Pila //Funcin para visualizar elementos en la pila typedef struct nodo *lista;
destruida"<<endl; void imprimir(ptrPila p)
break; { while(p!=NULL) void push(lista &,char[15]);
} {cout<<p->nro<<endl; void imprimir(lista, int);
}while(opc!=5); p=p->sgte;
} } void push(lista &p, char n[15])
//Funcin para insertar elementos en la pila cout<<endl; {lista q=new(struct nodo);
void push(ptrPila &p, int n) } strcpy(q->c,n);
{ ptrPila q=new(struct nodo); q->sgt=p;
q->nro=n; **************************************** p=q;
q->sgte=p; **************************************** }
p=q; ****************************************
} void imprimir(lista p, int n)
//Funcin para eliminar elementos en la pila programe que tenga una pila de ciudades,luego {int c=0;
int pop(ptrPila &p) ingrese una ciudad destino y muestra while(p!=NULL && c<n+1)
{ int n=p->nro; una lista de ciudades que se pasaron para llegar {cout<<p->c<<endl;
ptrPila q=p; a la ciudad de destino.muestre la p=p->sgt;
p=p->sgte; primera ciudad. c++;
delete (q); }
return n; cout<<endl;
} }
//Funcin para eliminar la pila #include<iostream.h>
void main() cout<<"Ingrese opcion:";cin>>n; void encola(struct cola &, int);
{lista p=NULL; clrscr(); void verCola(struct cola);
int n,op; if(n>0 &&n<7) void vaciaCola(struct cola &);
push(p,"Lima"); { int desencola(struct cola &);
push(p,"Cerro-de-Pa,sco"); imprimir(p,n);
push(p,"Huanuco"); getch(); struct nodo{
push(p,"Tingo-Maria"); }} while(n!=7); int nro;
push(p,"Aguaytia"); break; struct nodo * sgte;
push(p,"San-Alejandro"); } };
push(p,"Pucallpa"); case 2:{ cout<<"Primera ciudad:"<<endl;
imprimir(p,n=0); struct cola{
getch(); struct nodo * delante;// apunta al
do{clrscr(); break;} primero
cout<<"Pila de ciudades:"<<endl; } struct nodo * atras;// apunta al ultimo
cout<<"inserte ciudad de destino [1]:"<<endl; }while(op!=3); };
cout<<"Muestre Primera ciudad [2]:"<<endl; }
cout<<"Salir [3]:"<<endl; void DividirCola(cola q,cola &cola1,cola &cola2)
cout<<"inserte opcion:";cin>>op; **************************************** {
switch(op) ****************************** nodo *p=q.delante;
int cont,i;
{ COLAS for(cont=0;p!=NULL;cont++)
case 1:{do{clrscr(); {
cout<<"opciones:"<<endl; **************************************** p=p->sgte;
cout<<"san-alejandro...............[1]:"<<endl; *********************************** }
cout<<"aguaytia....................[2]:"<<endl; p=q.delante;
cout<<"tingo-maria.................[3]:"<<endl; cont=cont/2;
cout<<"huanuco.....................[4]:"<<endl; DIVIDIR for(i=0;p!=NULL;i++,p=p->sgte)
cout<<"cerro-de-pasco..............[5]:"<<endl; #include<iostream.h> {
cout<<"lima........................[6]:"<<endl; #include<conio.h> if(i<cont)
cout<<"Regresa al Menu.............[7]:"<<endl; void inicializa(struct cola &); {
encola(cola1,p->nro); cout<<"----------------------------------"<<endl; break;
} cout<<"Ingrese Opcion = "; }
else cin>>opc; clrscr();
{ switch(opc) }while(opc!=5);
encola(cola2,p->nro); { }
} case 1: cout<<"Ingresar Elementos:";
} cin>>n; //funciones---------------------------
} encola(q,n); void inicializa(struct cola &q)
break; {q.delante=NULL;//apunta al primer elemento
case 2: if(q.delante!=NULL) q.atras=NULL; //apunta al ultimo elemento
void main(void) {n=desencola(q); }
{
int opc; cout<<endl<<"Desencola //INGRESA ELEMENTOS EN LA COLA
struct cola q,cola1,cola2; elementos"<<n<<endl;} void encola(struct cola &q, int n)
int n; else {
inicializa(q); cout<<endl<<"No hay struct nodo *p;
inicializa(cola1); elementos en la cola"<<endl; p=new (struct nodo);
inicializa(cola2); break; p->nro=n;
do{ case 3: p->sgte=NULL;
cout<<endl<<"--------------MENU---------------- DividirCola(q,cola1,cola2); if(q.delante==NULL)
"<<endl; cout<<endl<<"Elementos de la q.delante=p; //ingresa el primer
cout<<"|[1] Ingresa Elementos cola:"<<endl; elemento
|"<<endl; verCola(q); else
cout<<"|[2] Retirar Elementos cout<<"ELEMENTOS DE LA COLA 1\n"; (q.atras)->sgte=p;// si no apunta a un
|"<<endl; verCola(cola1); nuevo nodo
cout<<"|[3] Dividir y Visualiza cola cout<<"ELEMENTOS DE LA COLA 2\n"; q.atras=p;// la cola apunta al ultimo elemento
|"<<endl; verCola(cola2); recientemente ingresado
cout<<"|[4] Vaciar Cola getch(); }
|"<<endl; break;
cout<<"|[5] Salir |"<<endl; case 4: vaciaCola(q);
//ELIMINA ELEMENTOS EN LA COLA void verCola(struct cola q) struct nodo * sgte;
{ };
int desencola(struct cola &q) struct nodo *p;
{ p=q.delante;// apunta al primer elementos struct cola{
struct nodo *p; while(p!=NULL) struct nodo * delante;
p=q.delante;// apunta al primer elemento { struct nodo * atras;
int n=p->nro; cout<<p->nro<<endl; };
q.delante=(q.delante)->sgte; p=p->sgte;
delete(p); } void main(void)
return n; {char a[20];
} } int opc,l;
struct cola q;
int n,c,sum=0;
**************************************** inicializa(q);
//BORRA LOS DATOS DE LA COLA ***************************
void vaciaCola(struct cola &q) do{clrscr();
{ cout<<endl<<"******MENU********"<<endl;
struct nodo *p,*r; //cola con numero y costo y que sume todos los cout<<"[1] Ingresa Elementos"<<endl;
p=q.delante;// apunta al primer elemento costos de la cola cout<<"[2] Visualiza cola"<<endl;
while(p!=NULL) cout<<"[3] Elemento Mayor"<<endl;
{ #include<iostream.h> cout<<"[4] Salir"<<endl;
r=p; #include<conio.h> cout<<"Ingrese Opcion";
p=p->sgte; void inicializa(struct cola &); cin>>opc;
delete(r); void encola(struct cola &,char[20],int,int); switch(opc)
} void verCola(struct cola); {
q.delante=NULL; void verColaMayor(struct cola) case 1:
q.atras=NULL; struct nodo{ {cout<<"INGRESE EL LIMITE DE
char nombre[20]; ELEMENTOS :";cin>>l;
} int nro; for(int i=0;i<l;i++)
int costo; {cout<<"Ingresar nombre:";cin>>a;
cout<<"Ingresar numero:";cin>>n; struct nodo *p;
cout<<"Ingrese costo:";cin>>c; void encola(struct cola &q,char x[20], int n,int p=q.delante;
sum=sum+c; n2) x=p->costo;
encola(q,a,n,c); { while(p!=NULL)
} struct nodo *p; {
}break; p=new (struct nodo); if(p->costo>x)
strcpy(p->nombre,x); x=p->costo;
case 2: cout<<endl<<"Elementos de la p->nro=n;
cola:"<<endl; p->costo=n2; p=p->sgte;
verCola(q); p->sgte=NULL;
cout<<endl<<"la suma total del costo if(q.delante==NULL) }
es:"<<sum<<endl; q.delante=p; cout<<"la mayor edad es :"<<x<<endl;
getch(); else }
break; (q.atras)->sgte=p;
q.atras=p; ****************************************
case 3: cout<<endl<<"Elemento mayor de la } ****************************************
cola:"<<endl; *
verColaMayor(q); void verCola(struct cola q)
getch(); { 3)Se tiene una cola de hombre y mujeres con sus
break; struct nodo *p; nombres, se debe dividir la
} p=q.delante; colar en dos resultantes, una para hombres y
}while(opc!=4); while(p!=NULL) otra para mujeres.
} {
//funciones--------------------------- cout<<p->nro<<" "<<p->costo<<endl;
p=p->sgte; #include<iostream.h>
void inicializa(struct cola &q) } #include<conio.h>
{q.delante=NULL; }
q.atras=NULL;
} void verColaMayor(struct cola q) struct nodo{char sexo;
{int x;
char cout<<"==================="<<endl; struct nodo{
nombre[20]; cout<<"***Cola Original***"<<endl; char nombre[20];
struct nodo*sgte;}; verCola(q); char sexo;
while(q.delante!=NULL) struct nodo*sgte;
struct cola{struct nodo*delante;//apunta a {cte=desencola(q); };
primero if(cte.sexo=='M'||cte.sexo=='m') struct cola{
struct nodo*atras; //apunta a ultimo encola(qH,cte); struct nodo*delante;
}; else encola(qM,cte); struct nodo*atras;
void inicializa(struct cola&); } };
void encola(struct cola&,struct nodo); cout<<"====================="<<endl;
struct nodo(desencola(struct cola&)); cout<<"***Cola de Hombres***"<<endl; void inicializa(struct cola &);
void verCola(struct cola); verCola(qH); void encola(struct cola &, struct nodo);
cout<<"====================="<<endl; struct nodo desencola(struct cola &);
void main() cout<<"***Cola de mujeres***"<<endl; void ver(struct cola &);
{ verCola(qM);
int n,i; getch(); void main()
struct nodo cte;//es la cola } {int n,i;
struct cola q; struct nodo cte;
struct cola qH; struct cola q;
struct cola qM; **************************************** struct cola qH;
inicializa(q); ************************************** struct cola qM;
inicializa(qH); inicializa(q);
inicializa(qM); //3.- se tiene una cola de homabres y mujeres inicializa(qH);
con sus nombre, se deve dividir inicializa(qM);
cout<<"Nro de Cliente: ";cin>>n; la cola en dos resultantes, una para hombres y cout<<"Numero de clientes:";
for(i=0;i<n;i++) otra para mujeres. cin>>n;
{cout<<"Nombre: ";cin>>cte.nombre; for(i=0;i<n;i++)
cout<<"sexo M/F: ";cin>>cte.sexo; #include<iostream.h> {cout<<"Nombre:";
encola(q,cte); #include<conio.h> cin>>cte.nombre;
} cout<<"Sexo M/F:";
cin>>cte.sexo; q.delante=p; ****************************************
encola(q,cte); else ********************
} (q.atras)->sgte=p;
cout<<"cola original:"<<endl; q.atras=p; #include<iostream.h>
ver(q); } #include<conio.h>
while(q.delante!=NULL) #include<string.h>
{cte=desencola(q); struct nodo desencola(struct cola & q) #define lim 20
if(cte.sexo=='M'||cte.sexo=='m') {struct nodo*p; void inicializa(struct cola &);
encola(qH,cte); p=q.delante; void encola(struct cola &,char[lim],int,int);
else struct nodo cte=*p; void verCola(struct cola);
encola(qM,cte); q.delante=(q.delante)->sgte; int desencola(struct cola &);
} delete(p);
cout<<"cola de hombres"<<endl; return cte; struct nodo{
ver(qH); } char nombre[lim];
cout<<"cola de mujeres"<<endl; int sexo;
ver(qM); int ed;
getch(); void ver(struct cola & q) struct nodo * sgte;
} {struct nodo*p; };
p=q.delante; struct cola{
void inicializa(struct cola & q) while(p!=NULL) struct nodo * delante;// apunta al primero
{q.delante=NULL; {cout<<p->nombre<<"\t"<<p->sexo<<endl; struct nodo * atras;// apunta al ultimo
q.atras=NULL; p=p->sgte; };
} } void main(void)
} {
void encola(struct cola & q, struct nodo cte) int opc,l,ed;
{struct nodo*p; struct cola q,p,r;
p=new(struct nodo); int n2,n;
*p=cte; char a[20];
p->sgte=NULL; inicializa(q);
if(q.delante==NULL) inicializa(p);
inicializa(r); else if(q.delante==NULL)
do{clrscr(); cout<<endl<<"No hay elementos en la q.delante=p; //ingresa el primer elemento
cout<<endl<<"******MENU********"<<endl; cola"<<endl;getch(); else
cout<<"[1] Ingresa Elementos"<<endl; break; (q.atras)->sgte=p;// si no apunta a un nuevo
cout<<"[2] Retirar Elementos"<<endl; case 3: cout<<endl<<"masculinos:"<<endl; nodo
cout<<"[3] Visualiza cola"<<endl; verCola(q); q.atras=p;// la cola apunta al ultimo elemento
cout<<"[4] Salir"<<endl; cout<<endl<<"femenino:"<<endl; recientemente ingresado
cout<<"Ingrese Opcion"; verCola(p); }
cin>>opc; cout<<endl<<"lista completa:"<<endl; //ELIMINA ELEMENTOS EN LA COLA
switch(opc) verCola(r); int desencola(struct cola &q)
{ getch(); {
case 1: break; struct nodo *p;
{cout<<"INGRESE EL LIMITE DE } p=q.delante;// apunta al primer elemento
ELEMENTOS :";cin>>l; }while(opc!=4); char n[20];
for(int i=0;i<l;i++) } strcpy(n,p->nombre);
{cout<<"Ingresar nombre:";cin>>a; //funciones--------------------------- q.delante=(q.delante)->sgte;
cout<<"Ingresar edad:";cin>>ed; void inicializa(struct cola &q) delete(p);
cout<<"Ingrese sexo(m=1,f=2):";cin>>n2; {q.delante=NULL;//apunta al primer elemento return 0;
if(n2==1) q.atras=NULL; //apunta al ultimo elemento }
{encola(q,a,n2,ed); }
encola(r,a,n2,ed);} //INGRESA ELEMENTOS EN LA COLA
if(n2==2) void encola(struct cola &q, char n[20],int n2,int //BORRA LOS DATOS DE LA COLA
{encola(p,a,n2,ed); ed1)
encola(r,a,n2,ed);}} { void verCola(struct cola q)
struct nodo *p; {int x;
} p=new (struct nodo); struct nodo *p;
break; strcpy(p->nombre,n); p=q.delante;// apunta al primer elementos
case 2: if(q.delante!=NULL) p->sexo=n2; x=p->ed;
{n=desencola(q); p->ed=ed1; while(p!=NULL)
cout<<endl<<"Desencola elementos"<<n<<endl;} p->sgte=NULL; {
cout<<p->nombre<<endl; struct nodo * atras;// apunta al ultimo struct cola q,cola1,cola2;
if(p->ed>x) }; int n;
x=p->ed; inicializa(q);
p=p->sgte; void DividirCola(cola q,cola &cola1,cola &cola2) inicializa(cola1);
{ inicializa(cola2);
} nodo *p=q.delante; do{
cout<<"la mayor edad es :"<<x<<endl; int cont,i; cout<<endl<<"******MENU********"<
} for(cont=0;p!=NULL;cont++) <endl;
{ cout<<"[1] Ingresa Elementos"<<endl;
p=p->sgte; cout<<"[2] Retirar Elementos"<<endl;
} cout<<"[3] Dividir y Visualiza
**************************************** p=q.delante; cola"<<endl;
************************************** cont=cont/2; cout<<"[4] Vaciar Cola"<<endl;
for(i=0;p!=NULL;i++,p=p->sgte) cout<<"[5] Salir"<<endl;
#include<iostream.h> { cout<<"Ingrese Opcion";
#include<conio> if(i<cont) cin>>opc;
void inicializa(struct cola &); { switch(opc)
void encola(struct cola &, int); encola(cola1,p->nro); {
void verCola(struct cola); } case 1: cout<<"Ingresar Elementos:";
void vaciaCola(struct cola &); else cin>>n;
int desencola(struct cola &); { encola(q,n);
encola(cola2,p->nro); break;
struct nodo{ } case 2: if(q.delante!=NULL)
int nro; } {n=desencola(q);
struct nodo * sgte; }
}; cout<<endl<<"Desencola
elementos"<<n<<endl;}
struct cola{ void main(void) else
struct nodo * delante;// apunta al { cout<<endl<<"No hay
primero int opc; elementos en la cola"<<endl;
break; p->nro=n; struct nodo *p,*r;
case 3: p->sgte=NULL; p=q.delante;// apunta al primer elemento
DividirCola(q,cola1,cola2); if(q.delante==NULL) while(p!=NULL)
cout<<endl<<"Elementos de la q.delante=p; //ingresa el primer {
cola:"<<endl; elemento r=p;
verCola(q); else p=p->sgte;
cout<<"ELEMENTOS DE LA COLA 1\n"; (q.atras)->sgte=p;// si no apunta a un delete(r);
verCola(cola1); nuevo nodo }
cout<<"ELEMENTOS DE LA COLA 2\n"; q.atras=p;// la cola apunta al ultimo elemento q.delante=NULL;
verCola(cola2); recientemente ingresado q.atras=NULL;
getch(); }
break; }
case 4: vaciaCola(q);
break; //ELIMINA ELEMENTOS EN LA COLA void verCola(struct cola q)
} {
clrscr(); int desencola(struct cola &q) struct nodo *p;
}while(opc!=5); { p=q.delante;// apunta al primer elementos
} struct nodo *p; while(p!=NULL)
p=q.delante;// apunta al primer elemento {
//funciones--------------------------- int n=p->nro; cout<<p->nro<<endl;
void inicializa(struct cola &q) q.delante=(q.delante)->sgte; p=p->sgte;
{q.delante=NULL;//apunta al primer elemento delete(p); }
q.atras=NULL; //apunta al ultimo elemento return n;
} } }