模拟港澳通行证办理流程系统(队列基础练习)
来源:互联网 发布:左右脑平衡 知乎 编辑:程序博客网 时间:2024/04/28 19:13
#define N 2
#define M 5
#define True 1
#define False 0
#define NULL 0
typedef struct
{
int num;
int arrtime;
}ELEMTP;
typedef struct node
{
int num;
struct node *next;
}QNode;
typedef struct
{
QNode *front,*rear;
}LQueue;
void InitQueue(LQueue *s);
void EnQueue(LQueue *q, int num1);
int DelQueue(LQueue *q);
void InitQueue(LQueue *q)
{
q->front = (QNode *)malloc(sizeof(QNode));
q->rear = q->front;
q->front->next = NULL;
q->front->num = 0;
}
void EnQueue(LQueue *q,int num1)
{
QNode *p;
p = (QNode *)malloc(sizeof(QNode));
p->next = NULL;
p->num = num1;
q->rear->next = p;
q->rear = p;
q->front->num++;
}
int DelQueue(LQueue *q)
{
QNode *p;
int n;
if(q->front == q->rear)
{
printf("no person here");
return 0;
}
else
{
p = q->front->next;
q->front->next = p->next;
if(p->next == NULL)
{
q->rear = q->front;
}
n = p->num;
free(p);
q->front->num--;
return n;
}
}
int Display(LQueue *q)
{
int k;
QNode *p;
if(q->front->num)
{
for(k = 1,p = q->front->next;p;p = p->next)
{
printf("%d NUM:%d\n",k++,p->num);
}
}
}
int Endq(LQueue *q)
{
while(q->front->num)
{
DelQueue(q);
}
printf("the queue is empty\n");
}
int main()
{
LQueue * q,* q1,* q2;
char ch2;
int n = 100;
char cmd;
int num;
int quenum = 0;
q1 = (LQueue *)malloc(sizeof(LQueue));
q2 = (LQueue *)malloc(sizeof(LQueue));
while(1)
{
printf("********************************************************************\n");
printf("opt E:enqueue D:deal I:start construction L:time up R:status\n ");
printf("\n");
cmd = getchar();
printf("your input is %c\n",cmd);
printf("please choice your queue:1~2\n");
ch2 = getchar();
scanf("%d",&quenum);
printf("queue = %d\n",quenum);
if(quenum == 1)
{
q = q1;
}
else
{
q = q2;
}
if((q->front == NULL)&&(cmd != 'I'))
{
printf("makesure we are in workting ime\n");
}
switch(cmd)
{
case 'I':
InitQueue(q);
break;
case 'E':
printf("your num is %d\n",n);
EnQueue(q,n++);
break;
case 'D':
num = DelQueue(q);
if(num == 0)
{
continue;
}
printf("It's %d's turn\n",num);
break;
case 'R':
printf("the current status of the queue: \n");
Display(q);
break;
case 'L':
printf("time is up\n");
Endq(q);
break;
default:
printf("cmd err\n");
break;
}
ch2 = getchar();
}
}
#define M 5
#define True 1
#define False 0
#define NULL 0
typedef struct
{
int num;
int arrtime;
}ELEMTP;
typedef struct node
{
int num;
struct node *next;
}QNode;
typedef struct
{
QNode *front,*rear;
}LQueue;
void InitQueue(LQueue *s);
void EnQueue(LQueue *q, int num1);
int DelQueue(LQueue *q);
void InitQueue(LQueue *q)
{
q->front = (QNode *)malloc(sizeof(QNode));
q->rear = q->front;
q->front->next = NULL;
q->front->num = 0;
}
void EnQueue(LQueue *q,int num1)
{
QNode *p;
p = (QNode *)malloc(sizeof(QNode));
p->next = NULL;
p->num = num1;
q->rear->next = p;
q->rear = p;
q->front->num++;
}
int DelQueue(LQueue *q)
{
QNode *p;
int n;
if(q->front == q->rear)
{
printf("no person here");
return 0;
}
else
{
p = q->front->next;
q->front->next = p->next;
if(p->next == NULL)
{
q->rear = q->front;
}
n = p->num;
free(p);
q->front->num--;
return n;
}
}
int Display(LQueue *q)
{
int k;
QNode *p;
if(q->front->num)
{
for(k = 1,p = q->front->next;p;p = p->next)
{
printf("%d NUM:%d\n",k++,p->num);
}
}
}
int Endq(LQueue *q)
{
while(q->front->num)
{
DelQueue(q);
}
printf("the queue is empty\n");
}
int main()
{
LQueue * q,* q1,* q2;
char ch2;
int n = 100;
char cmd;
int num;
int quenum = 0;
q1 = (LQueue *)malloc(sizeof(LQueue));
q2 = (LQueue *)malloc(sizeof(LQueue));
while(1)
{
printf("********************************************************************\n");
printf("opt E:enqueue D:deal I:start construction L:time up R:status\n ");
printf("\n");
cmd = getchar();
printf("your input is %c\n",cmd);
printf("please choice your queue:1~2\n");
ch2 = getchar();
scanf("%d",&quenum);
printf("queue = %d\n",quenum);
if(quenum == 1)
{
q = q1;
}
else
{
q = q2;
}
if((q->front == NULL)&&(cmd != 'I'))
{
printf("makesure we are in workting ime\n");
}
switch(cmd)
{
case 'I':
InitQueue(q);
break;
case 'E':
printf("your num is %d\n",n);
EnQueue(q,n++);
break;
case 'D':
num = DelQueue(q);
if(num == 0)
{
continue;
}
printf("It's %d's turn\n",num);
break;
case 'R':
printf("the current status of the queue: \n");
Display(q);
break;
case 'L':
printf("time is up\n");
Endq(q);
break;
default:
printf("cmd err\n");
break;
}
ch2 = getchar();
}
}
- 模拟港澳通行证办理流程系统(队列基础练习)
- 宝宝身份证及港澳通行证办理流程
- 长沙市护照港澳通行证办理
- 深圳办理港澳通行证及续签
- 南京港澳通行证续签办理指南
- 港澳出入境通行证办事流程
- 如何第一次办理港澳通行证、护照、台湾通行证
- 成都市 普通护照、往来港澳通行证、大陆居民往来台湾通行证 办理方法(2015年11月更新)
- 关于港澳通行证的办理和续签的问题总结
- 港澳通行证
- 港澳通行证
- 博白县办港澳通行证流程及相关费用
- 非深圳户口可以在深圳办理港澳个人游通行证了
- 北京各区办理护照和港澳通行证的地址和电话
- 非广州户籍在校研究生办理港澳通行证和护照心得
- 非深户港澳通行证续签材料
- Java -- 队列(模拟银行的排队办理业务)
- 循环队列实现业务办理流程基本功能
- while(scanf("%d",&n)!=EOF)
- 映射集合属性之④:bag元素映射
- 快速搭建 php +myspl +apacheh环境下载
- 停车场(队列堆栈基础练习)
- 实例与数据库的区别
- 模拟港澳通行证办理流程系统(队列基础练习)
- 显示PG中的表的每一行
- C++结构体的定义、初始化和引用
- 栈遍历式迷宫
- 网络通信之单播,广播,多播
- MapReduce基本概念
- 常去的餐馆发现他们送饭老弄错,餐馆下单管理,不喜欢搞太上层的东西
- hdu 1443
- vc查看端口是否被占用