Cola de operación
Aquí se explicará un poco sobre la aplicación de la cola con Premtive (prioridad).
Sin más escribió inmediatamente al código ellos mismos:
Primero escriba el código siguiente y guárdelo como interface.h:
#include
#include
#define Error(Str) FatalError(Str)
#define FatalError(Str) fprintf (stderr, "%s\n", Str), exit(1)
Guarde el código queue.h de archivo siguiente:
#ifndef _Queue_h
#define _Queue_h
typedef int ElementType;
struct QueueRecord;
typedef struct QueueRecord * cola;
Cola CreateQueue(int MaxElements);
void Enqueue (ElementType X, Q cola);
ElementType Front(Queue Q);
void quitar (cola Q);
void preferentes (ElementType X, Q cola);
void DisposeQueue(Queue Q);
void MakeEmpty(Queue Q);
int IsEmpty (cola Q);
int IsFull (cola Q);
#endif
Entonces escriba el código siguiente y guarde el archivo como una implementación con queue.c:
#include "queue.h"
#include "fatal.h"
#include
struct QueueRecord {}
int capacidad;
int frente;
int parte posterior;
int tamaño;
ElementType * Array;
};
Static int Succ (int valor, Q cola);
void Enqueue (ElementType X, Q cola) {}
if(IsFull(Q))
Error ("cola completo");
Else {}
Q -> tamaño ++;
Q -> Array [Q -> trasero] = X;
Q -> trasero = Succ (Q -> parte trasera, Q);
}
}
Cola CreateQueue(int MaxElements) {}
Cola Q = NULL;
Q = malloc (sizeof(struct QueueRecord));
if(Q==null)
FatalError ("fuera de espacio!!!!!!");
Q -> Array=malloc(sizeof(ElementType) * MaxElements);
Si (Q -> matriz == NULL)
FatalError ("fuera de espacio!!!!!!");
Q -> capacidad = MaxElements;
MakeEmpty(Q);
volver Q;
}
void preferentes (ElementType X, Q cola) {}
if(IsFull(Q))
Error ("cola completo");
Else {}
Q -> tamaño ++;
Q -> Array [Q -> delantero] = X;
Q -> trasero = Succ (Q -> parte trasera, Q);
}
}
ElementType Front(Queue Q) {}
if (!. IsEmpty(Q))
volver Q -> Array [Q -> frente];
Error ("cola vacía");
return 0;
}
void quitar (cola Q) {}
if(isEmpty(Q))
Error ("cola vacía");
Else {}
Q -> tamaño--;
Q -> frente = Succ (Q -> delantero, Q);
}
}
void DisposeQueue(Queue Q) {}
Si (Q! = NULL) {}
libre (Q -> Array);
Free(Q);
}
}
Static int Succ (int valor, Q cola) {}
Si (++ valor == Q -> capacidad)
Valor = 0;
devolver valor;
}
void MakeEmpty(Queue Q) {}
Q -> tamaño = 0;
Q -> frente = 0;
Q -> trasero = 0;
}
int IsEmpty (cola Q) {}
volver Q -> tamaño == 0;
}
int IsFull (cola Q) {}
volver Q -> tamaño == Q -> capacidad;
}
Guarde el archivo con el nombre klien.c cuarto que funciona como un cliente
#include
#include "queue.h"
int main() {}
Cola Q;
int i;
int n = 20;
Static int max_queue_size = 20;
Q = CreateQueue(max_queue_size);
Preemptive(90,Q);
printf("%d\t",Front(Q));
Dequeue(Q);
para (i = 0; i
para (i = 0; i
{if(Q!=null)}
Si (i %2 == 0) {}
Enqueue(i,Q);
}
}
if(i%2==0)
printf("%d,",i);
}
}
DisposeQueue(Q);
return 0;
}
Una vez compilado mostrará resultados de la suma de los números en una fila desde el inicio de 0 a 18 años. Resultados de la suma es el número 90. Número es que la serie es:
90 0,2,4,6,8,10,12,14,16,18.