Assignment in Computer Science and Operating Systems

profileneedassignmenthelp
queue.docx

#include <stdio.h>

#include <stdlib.h>

typedef struct process {

struct process *next;

int ID;

int startTime;

int runningTime;

int timeReady;

int timeBlocked;

} qProcess;

typedef struct queue {

qProcess *front;

qProcess *rear;

} queue;

qProcess *new_process(int t, int ID) {

struct process* p = (struct process*) malloc(sizeof(struct process));

p->startTime = t;

p->ID = ID;

return p;

}

void enqueue(queue *queue, qProcess *new_p) {

if (queue->front == NULL) {

queue->front = new_p;

queue->rear = new_p;

queue->front->next = queue->rear->next = NULL;

} else {

queue->rear->next = new_p;

queue->rear = new_p;

queue->rear->next = NULL;

}

}

qProcess *dequeue(queue *queue) {

qProcess *p = NULL;

if (queue->front) {

p = queue->front;

if (queue->front == queue->rear) {

queue->front = NULL;

queue->rear = NULL;

} else {

queue->front = p->next;

}

}

return p;

}