Utilice un equipo de cadena para diseñar un algoritmo que refleje la situación de los pacientes que visitan a un médico y hacen cola para ver a un médico. Durante el proceso de cola de pacientes, se repiten dos cosas principales:
#includelt; stdio.hgt;
#includelt; malloc.hgt;
typedef struct qnode{
int datos;
struct qnode *next;
}QNode; // Tipo de nodo del equipo de cadena
typedef struct {
QNode *front, * rear ;
}QuType; // Tipo de equipo de cadena
void SeeDoctor(){ //Simula el proceso de tratamiento del paciente
int sel, flag=1, buscar, no;
QuType *qu;
QNode *p;
qu=(QuType *)malloc(sizeof(QuType)); Cola vacía
qu-gt; front=qu-gt; rear=NULL
while(flag==1){ // Ejecución del bucle
printf ("1: Cola 2: Ver al médico 3: Verificar la cola 4: No más colas, los pacientes restantes serán tratados en orden 5: Después de salir del trabajo, elija:
scanf"); ("d", amp; sel);
p>switch(sel){
caso 1: printf(" gt; gt; ingrese el número de registro médico: "); /p>
do{
scanf("d",amp;no);
find=0;
p=qu-gt; frente;
while(p!=NULL amp;amp; !find)
if(p-gt;data==no)
find=1 ;
else
p=p-gt; siguiente
if(buscar)
printf(" gt; gt; El El número de registro médico ingresado se repite, vuelva a ingresar: ");
} while(find==1);
p=(QNode *)malloc(sizeof(QNode)) ; //Crear nodo
p-gt; datos =no;
>
p-gt; next=NULL;
if(qu-gt; rear==NULL) //El primer paciente hace cola
qu-gt; qu-gt;trasero=p;
else{
qu-gt;trasero-gt;next=p;
qu-gt;trasero=p ; //Encolar *p nodo
}
break;
caso 2: if(qu-gt; front==NULL) // La cola es vacío
printf(" gt; gt; ¡No hay pacientes en la cola!\n"
else{ //La cola no está vacía
> p=qu -gt; front;
printf(" gt; gt; visitas del paciente\n", p-gt; datos
if(qu-gt; rear==p ) //Cuando solo hay un paciente en la fila
qu-gt; front=qu-gt; rear=NULL
else
qu-gt; frente =p-gt; siguiente
libre(p);
}
caso; 3: if(qu- gt; front == NULL) //La cola está vacía
printf(" gt; gt; ¡No hay pacientes en la cola!\n");
else{
p=qu-gt; front;
printf(" gt; gt; Pacientes en cola: "); !=NULL){
printf("d", p-gt; datos);
p=p-gt;
} p>
printf("\n");
}
break;
caso 4: if (qu-gt; front==NULL) //cola vacía
printf(" gt; gt; ¡No hay pacientes en la fila! \n");
else{
p=qu-gt; p>
p>
printf(" gt; gt; Los pacientes son tratados en el siguiente orden: ");
while(p!=NULL){
printf("d",p -gt;datos);
p=p-gt;siguiente;
}
printf("\n") ;
}
flag=0; //Salir
break;
caso 5: if(qu-gt; front! =NULL) //El equipo no está vacío
printf(" gt; gt; ¡pacientes en fila, busquen tratamiento médico mañana! \n");
flag=0; /p>
ruptura
}
}
}
int main(){
VerDoctor();
devolver 0;
}