Código C:
Ver original//Se pretende gestionar mediante punteros la cola de la fotocopiadora. Se pide utilizando funciones:
//A) Tipo de datos adecuado.
typedef struct cola_foto{
telemento elemnto;
struct cola_foto * sigte;
}cola_foto;
typedef struct t_cola{
cola_foto *ant;
cola_foto *post;
}t_cola;
typedef t_cola *cola;
//B) Programar la funcion iniciarcola, la cual inicializa una variable para que describa una cola vacia.
int vacia (cola c)
{
return(c->ant==c->post);
}
void iciniciarcola(){
cola c;
c
(t_cola
*)malloc(sizeof(t_cola
)); if (c==NULL)
printf("Memoria insuficiente."); c
->ant
= c
->post
= (cola_foto
*)malloc(sizeof(cola_foto
)); if (c->ant == NULL)
printf("Memoria insuficiente."); c->ant->sigte = NULL; // Ponemos a NULL el campo sigte del nodo apuntado por c->ant para indicar que es el unico, el nodo cabecera.
return c;
}
//C) Programar la funcion alacola, la cual inserta el nombre de un individuo en la cola.
void alacola(telemento x, coal c){
c
->post
->sigte
=(cola_foto
*)malloc(sizeof(celda
)); if (c->post->sigte==NULL)
printf("Memoria insuficiente."); c->post = c->post->sigte;
c->post ->elemento = x;
c->post ->sigte = NULL;
}
//D) Programar la funcion suturno que extrae y muestra el nombre de la primera persona de la cola.
void main()
{
struct nodo *pri=NULL, *ult=NULL;
struct persona x;
printf("Introduzca el nombre: ");
while(strcmpi(x.nombre,"fin"))
if(pri==NULL) pri=ult; // Si es la 1º pasada pongo en pri el valor del primer nodo
}
if(colavacia
(pri
)==1) { printf("No se ingresaron registros"); getch(); }
else mostrar(pri);