queue.c
Go to the documentation of this file.00001
00017 #include "queue.h"
00018 #include <stdlib.h>
00019
00023 static queue* kdqueue = NULL;
00024
00030 void qbuild
00031 (
00032 void
00033 )
00034 {
00035 kdqueue = (queue*)malloc(sizeof(queue));
00036 kdqueue->first = NULL;
00037 kdqueue->last = NULL;
00038
00039 return;
00040 }
00041
00052 void qinsert
00053 (
00054 qnode* new
00055 )
00056 {
00057 new->next = NULL;
00058 if( kdqueue->first == NULL )
00059 {
00060 kdqueue->first = new;
00061 kdqueue->last = new;
00062 }
00063 else
00064 {
00065 kdqueue->last->next = new;
00066 kdqueue->last = new;
00067 }
00068
00069 return;
00070 }
00071
00080 qnode* qretrieve
00081 (
00082 void
00083 )
00084 {
00085 return kdqueue->first;
00086 }
00087
00096 void qdelete
00097 (
00098 void
00099 )
00100 {
00101 qnode* p = NULL ;
00102
00103 if( kdqueue->first->next == NULL )
00104 {
00105 free(kdqueue->first->info);
00106 free(kdqueue->first);
00107 kdqueue->first = NULL;
00108 kdqueue->last = NULL;
00109 }
00110 else
00111 {
00112 p = kdqueue->first;
00113 kdqueue->first = p->next;
00114 free(p->info);
00115 free(p);
00116 }
00117
00118 return;
00119 }
00120
00130 int qempty
00131 (
00132 void
00133 )
00134 {
00135 return kdqueue->first == NULL;
00136 }
00137
00146 void qdestroy
00147 (
00148 void
00149 )
00150 {
00151 qnode* p = NULL ;
00152 qnode* q = NULL ;
00153
00154 p = kdqueue->first;
00155 while( p )
00156 {
00157 q = p;
00158 p = p->next;
00159 free(q->info);
00160 free(q);
00161 }
00162 free(kdqueue);
00163 kdqueue = NULL;
00164
00165 return;
00166 }