您的当前位置:首页include

include

来源:小侦探旅游网


#include #include #include #include #include typedef int Status;

#define OK 1

#define ERROR 0 typedef struct QNode {

int data;

struct QNode *next; }QNode, *QueuePtr;

typedef struct {

QueuePtr front; QueuePtr rear; }LinkQueue;

Status InitQueue(LinkQueue &Q) {

Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); Q.front->next=NULL; return OK; }

Status QueueEmpty(LinkQueue Q) {

if(Q.front==Q.rear) return OK; else

return ERROR; }

int QueueLength(LinkQueue Q) {

int i=0; QueuePtr p; p=Q.front;

while(Q.rear!=p)

{

i++;

p=p->next; }

printf(\"该队列长度为%d\ return i; }

Status EnQueue(LinkQueue &Q,int e) {

QueuePtr p;

p=(QueuePtr)malloc(sizeof(QNode)); if(!p)

exit(OVERFLOW); p->data=e;

p->next=NULL; Q.rear->next=p; Q.rear=p; return OK; }

Status DeQueue(LinkQueue &Q,int &e) {

QueuePtr p;

if(Q.front==Q.rear) return ERROR; p=Q.front->next; e=p->data;

Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(p); return OK; }

void main () {

int d,i; LinkQueue Q; int operate; for(;;) { printf(\"请选择操作:初始化(1),插入(2),删除(3),长度(4),为空(5),退出(0)\\n\");

scanf(\"%d\ switch(operate) { case 1: if(InitQueue(Q)==OK) printf(\"初始化成功:\\n\");

}

}

break; case 2: int t; printf(\"请输入要插入的元素:\\n\"); scanf(\"%d\ EnQueue(Q,t); printf(\"插入的元素是%d\\n\ break; case 3: DeQueue(Q,d); printf(\"删除的元素%d\\n\ break;

case 4: QueueLength(Q); //printf(\"该队列长度为%d\ break; case 5: if(QueueEmpty(Q)==OK) printf(\"队列为空队列\\n\"); else printf(\"队列不为空队列\\n\");

break;

}

因篇幅问题不能全部显示,请点此查看更多更全内容