Vous êtes sur la page 1sur 3

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TECNOLOGIA

EN SISTEMATIZACION DE DATOS ESTRUCTURAS DE DATOS

TALLER # 1: LISTAS ENLAZADAS

1. Construya una funcin que reciba una lista simple y elimine los nodos de aquellos
pacientes que se encuentren repetidos por nmero de identificacin

1 void Paciente::BorrarRepetidosLS(Paciente *&cab){


2 Paciente *p,*q,*r,*b;
3 if(cab!=NULL){
4 for(p=cab;p->sig!=NULL;p=p->sig){
5 q=p->sig;
6 while(q!=NULL){
7 if(p->Nip==q->Nip){
8 b=q;
9 q=q->sig;
10 for(r=cab;r->sig!=b;r=r->sig){
11 r->sig = b->sig;
12 delete(b);
13 }
14 }else{
15 q=q->sig;
16 }
17 }
18 }
19 }
20 }
21
2. Construya una funcin que reciba una lista circular y elimine los nodos de aquellos
pacientes que se encuentren repetidos por nmero de identificacin.

1 void Paciente::BorrarRepLC(Paciente *&cab){


2 Paciente *p,*q,*r,*s;
3 if(cab!=NULL){
4 p=cab->sig;
5 while(q!=cab){
6 q=p;
7 while(q!=cab){
8 q=q->sig;
9 if(p->Nip==q->Nip){
10 r=q;
11 for(r=p;s->sig!=q;r=r->sig)
12 r->sig=q->sig;
13 if(q==cab){
14 cab=r;
15 }
16 q=r;
17 delete(r);
18 }
19 }
20 p=p->sig;
21 }
22 }
23 }

3. Disee una funcin que reciba una lista simple y muestre aquellos pacientes que ya
cancelaron el 100% del costo del tratamiento odontolgico.

1 void Paciente::CompPagos(Paciente *cab){


2 if(cab){
3 while(cab!=NULL){
4 float TotPago=0;
5 TotPago cab->Pago1+cab->Pago2+cab->Pago3;
6 if(TotPago==cab->CostoTot){
7 cout<<"El paciente "<<cab->Nom<<" con identificacion "
8 <<cab->Nip<<" a cancelado el 100% "<<endl;
9 }
10 cab=cab->sig;
11 }
12 }else{
13 cout<<"No hay datos en la lista"<<endl;
14 }
15 }
4. Disee una funcin insertar en lista circular que permita insertar pacientes repetidos por
el final de la lista

1 void Paciente::insertarFinal(Paciente *&n){


2 Paciente *p, *cab;
3 cout<<"INSERTA AL FINAL";
4 cout<<"INGRESE IDENDTIICACION:";
5 cin>>n->Nip;
6 n->sig=NULL;
7 if(cab==NULL){
8 cab=n;
9 cab->sig=cab;
10 p=n;
11 }else{
12 p->sig = n;
13 n->sig = cab;
14 p = n;
15 }
16 }
17

5. Construir una funcin que imprima los pacientes que fueron atendidos en tratamiento de
ortodoncia entre el 1/09/2017 hasta el 30/09/2017.

1 Void Paciente::CitasLS(Paciente *cab){


2 if(cab){
3 while(cab!=NULL){
4 if(strcmp(cab->fecha, "1/09/2017 ")!=0){
5 if(strcmp(cab->fecha, "30/09/2017")!=0){
6 cout<<"Nombre: "<<cab->Nom<<" Identificacin: "<<cab-7>Nip<<endl;
8 }else{
9 cout<<"La fecha ingresada es igual a la fecha comparada"endl;
10 }
11 }else{
12 cout<<"La fecha ingresada es igual a la fecha comparada"endl;
13 }
14 cab=cab->sig;
15 }
16 }
17 }
18

Vous aimerez peut-être aussi