博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
银行排号
阅读量:801 次
发布时间:2019-03-26

本文共 1813 字,大约阅读时间需要 6 分钟。

Description

银行排队系统也称之为银行排队机、叫号显示系统。随着电子信息产品、智能产品的快速发展,以及人类生活对服务环境、服务效率的要求越来越高,尤其是在服务性行业里更是如此,因此排队系统这个概念就应运而生了。现在请你实现一个简单的排号程序吧。

这里约定,新来一个用户的取号行为为Push ,第一个用户的编号为1,后面取号的编号依次类推,同时还要告知用户目前前面还有多少人在等待。用户办理完业务的行为定义为Pop。

Input

输入包含多行Push或Pop。如果输入Push,则代表新用户加入排队,输出该用户的编号和目前队伍等待人数;如果输入Pop,则代表用户办理完业务从队伍中退出(不会出现Pop时队伍为空的情况)。

Output

如果是Push命令,则输出新用户编号和目前还有多少人在等待

Sample Input

Push
Push
Push
Pop
Pop
Push

Sample Output

1 0
2 1
3 2
4 1

#include
#include
#include
struct list{
int people; int numble; struct list *next;};struct list *creatlist(){
struct list *list_1 = (struct list*)malloc(sizeof(struct list)); list_1->next = NULL; return list_1;}struct queue{
struct list *head; struct list *tail; int sizequeue;};struct queue *creatqueue(){
struct queue *queue_1 = (struct queue *)malloc(sizeof(struct queue)); queue_1->head = queue_1->tail = NULL; queue_1->sizequeue = 0; return queue_1;}void push(struct queue *queue_1){
int e_people,e_numble; struct list *list_1 = creatlist(); if(queue_1->sizequeue == 0) {
queue_1->head = queue_1->tail = list_1; queue_1->sizequeue += 1; queue_1->tail->people = 1; queue_1->tail->numble = 0; } else {
e_people = queue_1->tail->people; e_numble = queue_1->tail->numble; queue_1->tail->next = list_1; queue_1->tail = list_1; queue_1->sizequeue += 1; queue_1->tail->people = (e_people + 1); queue_1->tail->numble = (e_numble + 1); } printf("%d %d\n",queue_1->tail->people,queue_1->tail->numble);}void pop(struct queue *queue_1){
queue_1->tail->numble -= 1;}int main(void){
struct queue *queue_1 = creatqueue(); char a[6]; while(scanf("%s",a) != EOF) {
switch(a[1]) {
case 'u': push(queue_1); break; case 'o': pop(queue_1); break; default: printf("请重新输入!\n"); break; } } return 0;}

转载地址:http://wahyk.baihongyu.com/

你可能感兴趣的文章