链队列
来源:互联网 发布:淘宝零食营业执照 编辑:程序博客网 时间:2024/05/22 00:36
去银行办业务的第一件事是在取号机上取号等待服务. 其实,银行取号机是一个简单的队列. 请同学们用单链表存储和管理方式实现这个服务: 主要功能包括队列初始化, 入队操作, 出队操作.
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -2typedef int Status;typedef char CQElemType;typedef int QElemType;typedef struct QNode{ CQElemType name[10];//姓名QElemType number[10];//编号 struct QNode* next;}QNode,*QueuePtr;typedef struct LinkQueue{ QueuePtr qfront; QueuePtr qrear; int queuesize;}LinkQueue;Status InitLinkQueue(LinkQueue &LQ)//初始化{LQ.qfront=LQ.qrear=(QueuePtr)malloc(sizeof(QNode));LQ.qfront->next=NULL; LQ.queuesize=0; return OK;}Status EnQueue(LinkQueue &LQ,QElemType e2[],CQElemType e1[])//入队列{ QueuePtr q; q=(QueuePtr)malloc(sizeof(QNode));if(!q)return ERROR;for(int i=0;i<10;i++){q->number[i]=e2[i];}strcpy(q->name,e1); q->next=NULL; LQ.qrear->next=q;LQ.qrear=q;LQ.queuesize++; return OK;}QueuePtr DeQueue(LinkQueue &LQ)//出队列{QueuePtr q,p; if(LQ.queuesize==0) return ERROR; else { q=LQ.qfront->next;LQ.qfront=q;p=q;LQ.queuesize--; } return q;}int main(){int i;QElemType e1[10]={1,2,3,4,5,6,7,8,9,0};CQElemType e2[10]={"Bob"}; LinkQueue Q;QueuePtr q; InitLinkQueue(Q); for(i=0;i<5;i++) { EnQueue(Q,e1,e2); } for(i=0;i<5;i++) { q=DeQueue(Q);printf("%s\n",q->name);for(int i=0;i<10;i++)printf("%d",q->number[i]);printf("\n"); } return OK;}
0 0
- 队列-循环队列/链队列
- 队列,链队列,循环队列
- 队列,链队列,循环队列
- 队列--链表队列
- 队列之链队列
- 08.队列.链队列
- 队列,链队列,链式存储的队列
- 队列---循环队列与链队列比较
- 顺序队列 - 循环队列 - 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- 链队列
- Android5.0的更新包中system.new.dat文件的解包
- android 微信在朋友圈中屏蔽了APP store的链接解决方案
- 类 FocusTraversalPolicy 的使用方法
- auto int b=0 不能与其他类型说明符组合
- gsl_rng_alloc() exception问题
- 链队列
- 浅谈db2与oracle存储过程的不同之处
- 颜色特征
- Symmetric Tree
- Eclipse启动时;的调优处理
- VS2013 编译VC6.0等比较老版本的MFC工程字符集错误问题的解决方法
- Android改变系统自带ProgressDialog的文字大小
- system调用gcc编译器-待补充
- 异步回收fork出的子进程(僵尸进程)