home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.disi.unige.it
/
2015-02-11.ftp.disi.unige.it.tar
/
ftp.disi.unige.it
/
pub
/
.person
/
CataniaB
/
teach-act
/
esempi
/
Comp-Sep
/
queue.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-04-22
|
720b
|
46 lines
#include <stdio.h>
#include "queue.h"
char is_empty_queue(queue *p) { return(p->head->next == p->tail); }
list lmakecell(void) { return (list) malloc (sizeof (struct qcell));}
void empty_queue(queue *p)
{
p->head = lmakecell();
p->tail = lmakecell();
p->head->next=p->tail;
}
void destroy(queue *p)
{
free(p->tail);
free(p->head);
}
void enqueue(generic el,queue *p)
{
list q;
p->tail->el=el;
q =lmakecell();
p->tail->next=q;
p->tail=q;
}
generic dequeue (queue *p)
{
list q;
generic e;
if (!is_empty_queue(p))
{
q=p->head->next;
e = q->el;
p->head->next=q->next;
free(q);
return (e);
}
return NULL;
}