using namespace std
const int N = 10
typedef int ELEMTYPE
typedef struct Node
{
ELEMTYPE data
struct Node * next
}LNode
typedef struct queue
{
LNode *head
LNode *tail
}Queue
void initQueur(Queue &Q)
int isQueueEmpty(Queue &Q)
int enQueue(Queue &Q, ELEMTYPE e)
int deQueue(Queue &Q, ELEMTYPE &e)
void printQueue(Queue &Q)
int main()
{
Queue Q
initQueur(Q)
for(int i=1
{
enQueue(Q,i)
}
printQueue(Q)
return 0
}
void initQueur(Queue &Q)
{
Q.head = new LNode
Q.head->next = NULL
Q.tail = Q.head
}
int isQueueEmpty(Queue &Q)
{
return Q.head == Q.tail
}
int enQueue(Queue &Q, ELEMTYPE e)
{
LNode *p = new LNode
p->data = e
p->next = NULL
Q.tail->next = p
Q.tail = p
return 1
}
int deQueue(Queue &Q, ELEMTYPE &e)
{
if(isQueueEmpty(Q)) return 0
LNode *p = Q.head->next
if(p == Q.tail)
{
Q.tail = Q.head
}
else
{
Q.head->next = p->next
}
e = p->data
delete p
return 1
}
void printQueue(Queue &Q)
{
ELEMTYPE e
while(isQueueEmpty(Q)==0)
{
deQueue(Q,e)
cout<<e<<"\t"
}
}