//queue.h //队列,链表存储 #include <stdio.h> #include <stdlib.h> #include <math.h> typedef int ElemType; typedef struct QNode { ElemType data; struct QNode *next; }QNode; typedef struct { QNode *front, *rear; }L_Queue; /****************************************************************/ void init_Q(L_Queue *Q) { QNode *p ; p=(QNode *)malloc(sizeof(QNode)); p->next=NULL; Q->front=p; Q->rear=p; } /****************************************************************/ void out_Q(L_Queue *Q)//put out all elem sof the queue { QNode *p; p=Q->front->next; while(p!=NULL) { printf("%-4d",p->data); p=p->next; } } /****************************************************************/ void EnQueue(L_Queue *Q,ElemType e)//put a data in the queue { QNode *s; s=(QNode *)malloc(sizeof(QNode)); s->data=e; s->next=NULL; Q->rear->next=s; Q->rear=s; } /****************************************************************/ void destroyQueue(L_Queue *Q)//destroy a queue { while(Q->front) {Q->rear=Q->front->next; free(Q->front); Q->front=Q->rear; } } /****************************************************************/ ElemType DeQueue(L_Queue *Q)//out a data from the queue { QNode *p;ElemType e; //if(Q.front ==Q.rear)printf("Wrong"); p=Q->front->next; e=p->data; Q->front->next=p->next; if(Q->rear==p)Q->rear=Q->front; free(p); return e; }main
///////////////////////////////////////////////////////////////////// //Queue.cpp #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include"Queue.h" #define MAXSIZE 20 typedef int ElemType; L_Queue *q1; void main() { int k,a,b;ElemType x,y; q1=(L_Queue *)malloc(sizeof(L_Queue)); init_Q(q1); do{ printf("\n\n\t\t******************************\n"); printf("\t\t**1、进队列 **\n"); printf("\t\t**2、出队列 **\n"); printf("\t\t**3、输出队列 **\n"); printf("\t\t**5、结束 **\n"); printf("\t\t******************************\n"); scanf("%d",&k); switch(k) { case 1:{//ElemType y; printf("输入进队列元素:"); scanf("%d",&y); EnQueue(q1,y); printf("进队列元素是:%d\n",y); break; } case 2:{x=DeQueue(q1); printf("出队列元素是:%d\n",x); break; } case 3:{out_Q(q1); break; } } }while(k!=4); }