4 struct Queue * createQueue() {
5 struct Queue * queue = (struct Queue *)malloc(sizeof(struct Queue));
11 void freeQueue(struct Queue * q) {
15 struct QueueItem * addNewItem(struct Queue * queue, void * ptr) {
16 struct QueueItem * item=malloc(sizeof(struct QueueItem));
19 if (queue->head==NULL) {
23 item->next=queue->head;
24 queue->head->prev=item;
31 struct QueueItem * addNewItem_I(struct Queue * queue, void * ptr) {
32 struct QueueItem * item=malloc_I(sizeof(struct QueueItem));
35 if (queue->head==NULL) {
39 item->next=queue->head;
40 queue->head->prev=item;
47 struct QueueItem * findItem(struct Queue * queue, void *ptr) {
48 struct QueueItem * item=queue->head;
50 if (item->objectptr==ptr)
57 void removeItem(struct Queue * queue, struct QueueItem * item) {
58 struct QueueItem * prev=item->prev;
59 struct QueueItem * next=item->next;
60 if (queue->head==item)
64 if (queue->tail==item)
71 struct QueueItem * getTail(struct Queue * queue) {
75 struct QueueItem * getNextQueueItem(struct QueueItem * qi) {
79 void * getItem(struct Queue * queue) {
80 struct QueueItem * q=queue->head;
81 void * ptr=q->objectptr;