CS3413/Assignment8/code/disk.h

39 lines
786 B
C

#pragma once
typedef struct DiskRequest {
int position;
int time;
} DiskRequest;
typedef struct DiskQueue {
DiskRequest *requests;
int size;
} DiskQueue;
typedef enum DiskDirection {
UP, DOWN
} DiskDirection;
DiskQueue *createDiskQueue();
DiskRequest diskRequest(int position, int time);
void enqueue(DiskQueue *queue, DiskRequest request);
DiskRequest delete(DiskQueue *queue, DiskRequest request);
DiskQueue *clone(DiskQueue *queue);
DiskRequest peek(DiskQueue *queue);
DiskRequest dequeue(DiskQueue *queue);
DiskQueue *queueOfLesserTime(DiskQueue *queue, double time);
int compareDiskRequestsByPosition(const void *a, const void *b);
DiskQueue *sortQueueByPosition(DiskQueue *queue);
void destroyDiskQueue(DiskQueue *queue);