亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? back_simulation.c

?? 《數據結構》清華大學的
?? C
字號:
/*《數據結構》清華大學的,藍皮(c語言篇)65頁
*/
/*模擬銀行業務,計算客戶平均逗留時間
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>//srand()用到
typedef struct{
    int OccurTime;
    int NType;
}Event,ElemType;
typedef struct LNode{
    ElemType en;
    struct LNode *next;
}LNode;
typedef struct{
    int ArrivalTime;
    int Duration;
}QElemType;
typedef struct QNode
{
    QElemType data;
    struct QNode *next;
}QNode;
typedef struct{
    QNode * front;
    QNode * rear;
}LinkQueue;
LNode * ev;/*事件表*/
Event en;/*事件*/
LinkQueue q[5];
QElemType customer;/*客戶記錄*/
int TotalTime,CustomerNum;
int CloseTime;
int ListEmpty(LNode *ev)/*判斷是否為空*/
{
    if(ev->next==NULL)
        return 1;
    return 0;
}
void GetCurElem(LNode *ev)
{
    en.OccurTime=(ev->next->en).OccurTime;
    en.NType=(ev->next->en).NType;
}
void DelFirst(LNode *ev)
{
    ev=ev->next->next;
}
int cmp(Event *a,Event *b)
{
    int m=(*a).OccurTime-(*b).OccurTime;
    if(m==0)
        return 0;
    if(m>0)
        return 1;
    if(m<0)
        return -1;
}
void InitList()/*初始化事件表為空表*/
{
    ev=(LNode *)malloc(sizeof(LNode));
    ev->next=NULL;
}
int QueueLength(LinkQueue a)
{
    int length=0;
    QNode *p;
    for(p=(a.front)->next;p!=NULL;p=p->next)
        length++;
    return length;
}
void InitQueue(LinkQueue q[])/*初始化隊列*/
{
    int i;
    for(i=1;i<=4;i++)
    {
        q[i].front=q[i].rear=(QNode *)malloc(sizeof(QNode));
    if(!(q[i].front))
    {
        printf("Allocation failed!\n");
        return;
    }
    q[i].front->next=NULL;
    }
}
void GetHead(LinkQueue a,QElemType customer)/*獲得隊列的頭*/
{
    customer=a.front->next->data;
}
int  Minimum(LinkQueue q[])/*q 是隊列數組名*/
{
    int length[5];
    int min;
    int i,j;
    for(i=1;i<=4;i++)
        length[i]=QueueLength(q[i]);
    j=1;
    min=length[1];
    for(i=1;i<=4;i++)
    {
        if(length[i]<min)
        {
            min=length[i];
            j=i;
        }
    }
    return j;
}
void EnQueue(LinkQueue Q,QElemType e)
{
    QNode *p=(QNode *)malloc(sizeof(QNode));
    if(!p)
    {
        printf("Allocation failed!\n");
        exit(0);
    }
    (p->data).ArrivalTime=e.ArrivalTime;
    (p->data).Duration=e.Duration;
    Q.rear->next=p;
    Q.rear=p;
}
void DelQueue(LinkQueue Q,QElemType *e)
{
    QNode *p;
    if(Q.front==Q.rear)
    {
        printf("The queue is empty!\n");
        exit(0);
    }
    p=Q.front->next;
    (*e).ArrivalTime=(p->data).ArrivalTime;
    (*e).Duration=(p->data).Duration;
    Q.front->next=p->next;
    if(Q.rear==p)
        Q.rear=Q.front;
    free(p);
}
void PrintQueue(LinkQueue q[])
{
    QNode *p;
    int i;
    for(i=1;i<=4;i++)
    {
        printf("Queue[%d]:",i);
        p=q[i].front->next;
        while(p!=NULL)
        {
            printf("(%d %d)",(p->data).ArrivalTime,(p->data).Duration);
            p=p->next;
        }
        printf("\n");
    }
}
void OrderInsert(LNode *ev,Event * ab)
{
    LNode *p1,*p2;
    LNode *p0=(LNode *)malloc(sizeof(LNode));
    (p0->en).OccurTime=ab->OccurTime;
    (p0->en).NType=ab->NType;
    p0->next=NULL;
    p1=ev->next;
    if(p1==NULL)
    {
        ev->next=p0;
        p0->next=NULL;
    }
    else
    {
        while((cmp(&(p1->en),ab)<=0)&&(p1->next!=NULL))
        {
            p2=p1;
            p1=p1->next;
        }
        if(cmp(&(p1->en),ab)>0)
        {
            if(ev->next==p1)
                ev->next=p0;
            else
                p2->next=p0;
            p0->next=p1;
        }
        else
        {
            p1->next=p0;
            p0->next=NULL;
        }
    }
}
void Radom(int *durtime,int *intertime)/*產生兩個隨機數*/
{
    int stime;
    long ltime=time(NULL);
    stime=(unsigned int)ltime;
    srand(stime);
    *durtime=rand()%100;
    *intertime=rand()%100;
}
void PrintList(LNode *ev)
{
    LNode *p=ev->next;
    printf("(OccurTime,NType):");
    while(p!=NULL)
    {
        printf("(%d,%d)",p->en.OccurTime,p->en.NType);
        p=p->next;
    }
    printf("\n");
}



void OpenForDay()
{
    TotalTime=0;
    CustomerNum=0;
    InitList();
    en.OccurTime=0;en.NType=0;
    OrderInsert(ev,&en);
    PrintList(ev);
    InitQueue(q);
    PrintQueue(q);
} 
void CustomerArrived()
{
    int t,i;
    QElemType a;
    int durtime,intertime;
    CustomerNum++;
    Radom(&durtime,&intertime);
    t=en.OccurTime+intertime;
    en.OccurTime=t;
    en.NType=0;
    if(t<CloseTime)
        OrderInsert(ev,&en);
    i=Minimum(q);
    a.ArrivalTime=en.OccurTime;
    a.Duration=durtime;
    EnQueue(q[i],a);
    PrintQueue(q);
    if(QueueLength(q[i])==1)
    {
        en.OccurTime=en.OccurTime+durtime;
        en.NType=i;
        OrderInsert(ev,&en);
    }
}
int QueueEmpty(LinkQueue a)
{
    if(a.front==a.rear)
        return 1;
    return 0;
}
void CustomerDeparture()
{
    int i;
    en.OccurTime=en.OccurTime+customer.Duration;
    i=en.NType;
    DelQueue(q[i],&customer);
    TotalTime+=en.OccurTime-customer.ArrivalTime;
    if(!QueueEmpty(q[i]))
    {
        GetHead(q[i],customer);
        OrderInsert(ev,&en);
        PrintQueue(q);
    }
}
void Bank_Simulation(int CloseTime)
{
    OpenForDay();
    while(!ListEmpty(ev))
    {
        GetCurElem(ev);
        if(en.NType==0)
            CustomerArrived();
        else
            CustomerDeparture();
        DelFirst(ev);
    }
    printf("The avarage time each customer used is %f\n",(float)TotalTime/CustomerNum);
}
main()
{
    printf("Input the close time:");
    scanf("%d",&CloseTime);
    Bank_Simulation(CloseTime);
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频在线一区二区三区 | 青青草视频一区| 欧美大白屁股肥臀xxxxxx| 成人精品一区二区三区四区| 亚洲444eee在线观看| 国产精品视频你懂的| 日韩视频免费观看高清完整版在线观看 | 精品国产三级a在线观看| 色琪琪一区二区三区亚洲区| 成人av电影免费在线播放| 久久久久久久久一| 国产在线精品一区二区不卡了| 欧美一区二区在线免费观看| 国产成人一级电影| 午夜久久久影院| 色综合视频在线观看| 337p亚洲精品色噜噜| 极品少妇xxxx精品少妇| 国产视频一区在线观看| 91九色02白丝porn| 麻豆国产欧美日韩综合精品二区| 2020国产精品久久精品美国| 不卡的av网站| 亚洲精品国久久99热| 欧美岛国在线观看| 欧洲视频一区二区| 国产乱理伦片在线观看夜一区| 久久99国产精品免费网站| 久久亚洲一区二区三区四区| 蜜桃精品视频在线| 欧美一区二区三区在线电影| 国产婷婷色一区二区三区四区| voyeur盗摄精品| 国产成人精品一区二| 精品中文av资源站在线观看| 日韩精品高清不卡| 日韩影院免费视频| 日韩中文字幕区一区有砖一区| 国产91精品精华液一区二区三区| 免费观看91视频大全| 三级不卡在线观看| 日韩精品亚洲专区| 水蜜桃久久夜色精品一区的特点| 婷婷成人激情在线网| 日本强好片久久久久久aaa| 日本不卡中文字幕| 美国十次综合导航| 国产一区二区精品在线观看| 国产在线精品一区二区| 懂色中文一区二区在线播放| 成人av网址在线观看| 99久久久国产精品| 欧美亚洲综合在线| 欧美一级午夜免费电影| 精品免费视频.| 日本一区二区三区免费乱视频| 国产女主播一区| 亚洲精品美国一| 舔着乳尖日韩一区| 国产精品主播直播| 91视视频在线观看入口直接观看www| 日本韩国欧美在线| 欧美电影免费观看完整版| 亚洲精品一区二区三区福利 | 欧美日韩国产美| 日韩你懂的在线观看| 久久免费电影网| 国产精品三级av在线播放| 亚洲影视在线播放| 久久精品国产第一区二区三区| 大胆亚洲人体视频| 欧美日韩一区成人| 国产日韩精品一区二区三区 | 日本va欧美va欧美va精品| 国产激情一区二区三区桃花岛亚洲| 97久久精品人人做人人爽50路| 欧美高清视频一二三区| 国产亚洲自拍一区| 亚洲成人免费在线观看| 国产尤物一区二区在线| 91免费视频网址| 欧美变态tickle挠乳网站| 综合在线观看色| 精品一区二区三区在线观看国产| 粉嫩13p一区二区三区| 91美女片黄在线观看91美女| 欧美丰满少妇xxxbbb| 97se狠狠狠综合亚洲狠狠| 3d动漫精品啪啪1区2区免费| 欧美日韩精品欧美日韩精品一综合| 国产又粗又猛又爽又黄91精品| 欧美男生操女生| 久久夜色精品一区| 亚洲成人资源在线| www.色综合.com| 精品国产成人系列| 亚洲电影在线免费观看| 成人午夜短视频| 精品99999| 午夜精品成人在线视频| 国产精品国产a| 91精品久久久久久蜜臀| 这里只有精品电影| 国产午夜精品一区二区三区视频| 亚洲欧洲日产国码二区| 久久66热偷产精品| 久久久久免费观看| 精品伦理精品一区| 欧美一级免费观看| 免费成人av资源网| 亚洲成人一二三| 国产精品国产馆在线真实露脸| 日韩福利视频导航| 免费观看在线综合| 国产91精品一区二区| 国产高清在线精品| 青青草国产成人av片免费| 色素色在线综合| 99久精品国产| 国产精品亚洲а∨天堂免在线| 国产成人av一区二区三区在线 | 精品久久久久久久人人人人传媒| 麻豆精品新av中文字幕| 中文字幕在线不卡一区| 成人高清免费观看| 久色婷婷小香蕉久久| 成人性生交大片| 91黄色免费版| 日韩欧美美女一区二区三区| 欧美精品日韩一区| 色婷婷综合激情| 国产人久久人人人人爽| 一本大道av一区二区在线播放| 国产精品亚洲午夜一区二区三区 | 首页国产丝袜综合| 夜夜亚洲天天久久| 精品成人佐山爱一区二区| 精品国产制服丝袜高跟| 成人av综合在线| 中文字幕一区二区视频| 91麻豆精品国产91久久久久久 | 国产婷婷一区二区| 狠狠色丁香婷婷综合| 日韩欧美一级二级三级久久久| 亚洲风情在线资源站| 91精选在线观看| 激情小说亚洲一区| 精品久久久久一区二区国产| 激情图片小说一区| 欧美精品一区二区三区一线天视频| 日本一区中文字幕| 久久久久一区二区三区四区| 99视频一区二区| 日本成人在线一区| 久久久综合激的五月天| 成人综合婷婷国产精品久久| 日韩一区中文字幕| 91精品国产免费| 91视频.com| 国产精品一级黄| 亚洲一区二区三区爽爽爽爽爽| 日韩视频123| 色婷婷综合中文久久一本| 精品无人码麻豆乱码1区2区 | 亚洲视频一区二区在线| 日韩欧美123| 色狠狠一区二区| 看电视剧不卡顿的网站| 亚洲一区在线视频| 久久亚洲一区二区三区明星换脸 | 欧美日韩免费电影| 国产.精品.日韩.另类.中文.在线.播放 | 国产老女人精品毛片久久| 日韩午夜av电影| jizzjizzjizz欧美| 国产激情一区二区三区四区 | 国产精品理伦片| 久久免费视频色| 久久久综合九色合综国产精品| 69堂成人精品免费视频| 欧美体内she精视频| 在线欧美日韩精品| www.欧美日韩国产在线| 国产精品一卡二卡| 美女久久久精品| 精品亚洲成a人在线观看| 奇米影视一区二区三区小说| 亚洲a一区二区| 亚洲国产视频在线| 国产日本欧洲亚洲| 99精品视频在线观看| 一区二区三区自拍| 久久精品国产99国产| 国产成a人无v码亚洲福利| 91亚洲国产成人精品一区二三| 欧美精品一二三| 精品欧美乱码久久久久久1区2区| 精品国产三级a在线观看| 亚洲日本欧美天堂| 国内精品国产三级国产a久久|