Red de conocimiento informático - Consumibles informáticos - 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:

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;

}

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;

}