zoukankan      html  css  js  c++  java
  • 数据结构试验-银行业务队列简单模拟

      设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍——即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。

     

    # include <stdio.h>
    # include <malloc.h>
    
    typedef struct Node
    {
        int data;                // 元素数据
        struct Node *next;            // 链式队列中结点元素的指针
    } QNode, *pQNode;
    
    typedef struct
    {
        pQNode front;                // 队列头指针
        pQNode rear;             // 队列尾指针
    }LinkQueue;
    
    
    //初始化队列,Q为待初始化队列
    
    void InitQueue(LinkQueue *Q)
    {
        Q->front = Q->rear = (pQNode)malloc(sizeof(QNode));
        Q->front->next = NULL;
    }
    
    
    void AddQ(LinkQueue *Q, int data)
    {
        pQNode tmp;
        tmp = (pQNode)malloc(sizeof(QNode));
        tmp->data = data;
        tmp->next = NULL;
    
        Q->rear->next = tmp;
        Q->rear = tmp;
    }
    
    void printHead(LinkQueue *Q)
    {
        pQNode tmp;
        tmp = Q->front->next;
        Q->front->next = tmp->next;
        printf("%d ",tmp->data);
        free(tmp);
    }
    
    int main()
    {
        int tmp,size,i,lenA = 0,lenB = 0;
        LinkQueue A;
        LinkQueue B;
    
        InitQueue(&A);
        InitQueue(&B);
        scanf("%d", &size);
        for(i = 0;i<size; i++ )
        {
            scanf("%d",&tmp);
            if(tmp%2)
            {
                AddQ(&A, tmp);
                lenA++;
            }
            else
            {
                AddQ(&B, tmp);
                lenB++;
            }
        }
        size = lenA/2 >= lenB ? lenA/2:lenB;
    
        for(i = 0;i<size; i++)
        {
            if(lenA > 1)
            {
                printHead(&A);
                printHead(&A);
                lenA-=2;
            }
            if(lenA == 1)
            {
                printHead(&A);
                lenA--;
            }
            if(lenB> 0)
            {
                 printHead(&B);
                 lenB--;
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    使用递归输出某个目录下所有子目录和文件
    如何进行复杂度分析?
    什么是时间复杂度?什么是空间复杂度?
    什么是复杂度?为什么要进行复杂度分析?
    什么是递归?递归的优缺点是什么?
    Executor 如何使用?
    什么是spring boot?为什么要用?
    spring boot核心配置文件是什么?
    @Autowired的作用是什么?
    @RequestMapping的作用是什么?
  • 原文地址:https://www.cnblogs.com/icez/p/3395956.html
Copyright © 2011-2022 走看看