青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我心飛翔

有事不慌,無事不荒,有容乃大,無欲則剛,以德立綱,外圓內方。

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  1 隨筆 :: 9 文章 :: 13 評論 :: 0 Trackbacks

//數據結構(C語言版)中棧的習題

#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#define ERROR 0
#define OK 1
typedef struct{
  int OccurTime;
  int NType;
}Event;
typedef struct{
 int ArrivalTime;
 int Duration;
}QElemType;
struct LNODE
{
  Event data;
  struct LNODE *next;
};
typedef struct LNODE LNode;
typedef struct LNODE *LinkList;
typedef struct LNODE *EvenList;
typedef struct QNode{
 QElemType elem;
 struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{ QueuePtr front;
  QueuePtr rear;
}LinkQueue;
EvenList ev;
Event en;
LinkQueue q[5];
QElemType customer;
int TotalTime,CustomerNum,CloseTime;

int InitList(EvenList *L)
{
  *L=(LNode *)malloc(sizeof(LNode));
  if(!(*L))   exit(ERROR);
  (*L)->next=NULL;
  return OK;
}
int DelFirst(EvenList *L,Event *e)
{ LNode *pc,*q;
  pc=*L;q=pc->next;
 pc->next=q->next;*e=q->data;return OK;}
int ListEmpty(LNode L)
{LNode *p;
 int j=0;
 p=L.next;
 while(p)
   {j++;break;}
 if(j==0) return 1;
 else return 0;
}
int compare(Event a,Event b)
{ if(a.OccurTime>b.OccurTime) return 1;
  else if(a.OccurTime==b.OccurTime) return 0;
  else return -1;
}
int OrderInsert(EvenList *L,Event e,int (* cmp)(Event ,Event ))
{ LNode *p,*pc;/*把事件插入鏈表*/
 p=(LNode *)malloc(sizeof(LNode));/*分配空間*/
 if(!p) { printf("not"); return(0);}
 if(ListEmpty(**L))
 { p->data=e;p->next=(*L)->next;(*L)->next=p;}
 else {
   switch(cmp(((*L)->next)->data,e))
  {case -1:pc=(*L)->next;
   while(pc->next!=NULL)
   {
    if((pc->next)->data.OccurTime<=e.OccurTime)
        pc=pc->next;
    else break;
   }
       p->data=e;p->next=pc->next;/*把它接在比它大的前*/
       pc->next=p;break;
     case 0:pc=(*L)->next;/*相等時,接在相等的后面*/
     p->data=e;p->next=pc->next;
     pc->next=p;break;
     case 1:p->data=e;p->next=(*L)->next;
        (*L)->next=p;break;/*小于時,接在最前面*/
 }}
 return 1;
}
void DestroyList(EvenList *L)/*銷毀表*/
{LNode *p;
 while(*L)
   {p=(*L)->next;free(*L);*L=p;}
}
int InitQueue(LinkQueue *Q)/*初始化隊列*/
{ Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
 if(!Q->front) exit(0);
 (Q->front)->next=NULL;
 return OK;
}
int DestroyQueue(LinkQueue *Q)/*銷毀隊列*/
{ while(Q->front)
    { Q->rear=Q->front->next;
     free(Q->front);
     Q->front=Q->rear;
    }
 return OK;
}
int EnQueue(LinkQueue *Q,QElemType e)/*插在隊最后*/
{QueuePtr p;
 p=(QueuePtr)malloc(sizeof(QNode));
 if(!p) exit(0);
 p->elem=e;p->next=NULL;
 (Q->rear)->next=p;
 Q->rear=p;/*重新設置隊尾*/
 return OK;
}
int QueueEmpty(LinkQueue Q)
{ if(Q.front==Q.rear) return OK;
 else return 0;}
int DelQueue(LinkQueue *Q,QElemType *e)/*刪除隊的第一個元素*/
{QueuePtr p;
 if(QueueEmpty(*Q)) return ERROR;
 p=(Q->front)->next;
 *e=p->elem;
 (Q->front)->next=p->next;
 if(Q->rear==p) Q->rear=Q->front;
 free(p);
 return OK;
}
void GetHead(LinkQueue Q,QElemType *a)
{QNode *p;
 if(Q.front==Q.rear) exit(0);
 p=(Q.front)->next;
 *a=p->elem;
}
int QueueLength(LinkQueue Q)/*隊的長度*/
{ int i=0;
 QNode *pc;
 if(Q.front==Q.rear) return 0;
 pc=Q.front;
 while(pc->next)
 {i++;pc=pc->next;}
 return i;
}
int Mininum(LinkQueue *Q)/*求長度最短的隊*/
{ int a[4],e,j,i;
  for(i=1;i<=4;i++)
      a[i-1]=QueueLength(Q[i]);
  e=a[0];j=1;
  for(i=1;i<=3;i++)
      if(e>a[i]) {e=a[i];j=i+1;}
  return j;
}
void OpenForDay()/*初始化操作*/
{ int i;
  TotalTime=0;CustomerNum=0;/*初始化累計時間和客戶數*/
  InitList(&ev);
  en.OccurTime=0;en.NType=0;/*設定第一個客戶到達事件*/
  OrderInsert(&ev,en,compare);/*把它插入事件表*/
  for(i=1;i<=4;i++) InitQueue(&q[i]);/*置空隊列*/
}
void Random(int *a,int *b)/*生成隨機數,a為每個客戶辦理時間在30分鐘內,
                           b 為兩相隔客戶到達的間隔時間不超過5分鐘*/
{ *a=0+rand()%30;*b=0+rand()%5;}
void CustomerArrived()/*處理客戶到達事件*/
{int durtime,intertime,t,i,b;
 ++CustomerNum;/*記錄客戶數*/
 Random(&durtime,&intertime);
 b=en.OccurTime;
 t=en.OccurTime+intertime;/*下一客戶到達時刻*/
 if(t<CloseTime)
    {en.OccurTime=t;en.NType=0; 
     OrderInsert(&ev,en,compare);
    }
 i=Mininum(q);/*求隊列最短*/
 customer.ArrivalTime=b;customer.Duration=durtime;/*為要插入隊的客戶設置到達時間和辦理所需時間*/
 EnQueue(&q[i],customer);
 if(QueueLength(q[i])==1)
     {en.OccurTime=b+durtime;en.NType=i;
      OrderInsert(&ev,en,compare);/*設定第i 個離開事件并插入事件表*/
      }
}
void CustomerDeparture()/*處理客戶離開事件*/
{int i;
 i=en.NType;DelQueue(&q[i],&customer);/*刪除第i隊列的排頭客戶*/
 TotalTime+=en.OccurTime-customer.ArrivalTime;/*累計客戶逗留時間*/
 if(!QueueEmpty(q[i]))/*設定第i隊列的一個將要離開事件并插入事件表*/
    { GetHead(q[i],&customer);/*得到它的資料*/
     en.OccurTime+=customer.Duration;en.NType=i;
     OrderInsert(&ev,en,compare);
     }
}
void Bank_Simulation()
{
 OpenForDay();/*初始化*/
 while(!ListEmpty(*ev))/*非空時,刪掉表里的第一個*/
   { DelFirst(&ev,&en);
     if(en.NType==0)
  CustomerArrived();/*是客戶還沒辦理的,就處理到達事件*/
     else CustomerDeparture();/*否則處理離開事件*/
   }
 printf("The Average Time is %.2f\n",(float)TotalTime/CustomerNum);
}
void main()
{scanf("%d",&CloseTime);/*輸入關門時間*/
 Bank_Simulation();
 getch();
}

posted on 2005-10-18 23:23 無情雨 閱讀(486) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲高清电影| 亚洲精品人人| 国产精品系列在线| 亚洲国产一二三| 国产欧美日韩一级| 一本色道久久99精品综合| 亚洲高清视频一区| 久久riav二区三区| 久久国产精品99国产精| 欧美色精品天天在线观看视频| 欧美阿v一级看视频| 国产曰批免费观看久久久| 亚洲综合久久久久| 亚洲一区二区三区激情| 欧美极品在线视频| 亚洲娇小video精品| 亚洲国产免费| 蜜臀a∨国产成人精品| 美日韩在线观看| 国自产拍偷拍福利精品免费一| 亚洲免费影视第一页| 午夜精品视频在线| 国产精品午夜视频| 性欧美18~19sex高清播放| 亚洲欧美第一页| 国产精品视频xxx| 亚洲欧美日本视频在线观看| 欧美亚洲色图校园春色| 国产精品一区二区三区乱码| 亚洲永久字幕| 久久精品二区| 亚洲电影免费观看高清| 美女网站久久| 亚洲免费观看高清在线观看 | 国产麻豆精品视频| 午夜精品久久久久久久久久久| 欧美一区激情| 一区在线电影| 欧美高清不卡| 日韩一级成人av| 欧美亚洲一区二区在线观看| 国产日韩精品一区观看| 久久久精品国产免费观看同学| 欧美成ee人免费视频| 亚洲精品资源美女情侣酒店| 欧美视频中文字幕在线| 午夜精品久久久久久久99水蜜桃 | 裸体女人亚洲精品一区| 91久久精品久久国产性色也91| 一区二区欧美激情| 国产精品中文字幕欧美| 美日韩精品视频| 亚洲精选一区| 久久久久久久久久久久久9999 | 国产主播一区二区三区| 美女精品在线| 一区二区三区欧美在线| 久久久美女艺术照精彩视频福利播放 | 欧美激情国产精品| 亚洲一区二区三区在线看| 久久久亚洲国产美女国产盗摄| 91久久综合亚洲鲁鲁五月天| 国产精品国产成人国产三级| 欧美在线免费视屏| 亚洲精品韩国| 久久尤物视频| 亚洲欧美激情四射在线日 | 久久久国产视频91| 一区二区三区四区五区视频| 国内外成人在线| 欧美日韩国产综合一区二区| 久久国产视频网站| 在线一区日本视频| 亚洲国产老妈| 六月婷婷一区| 久久国产精品久久w女人spa| 一区二区高清在线| 在线观看国产一区二区| 国产欧美日韩一区二区三区在线观看 | 亚洲精品免费网站| 国产自产精品| 国产精品稀缺呦系列在线| 欧美精品色一区二区三区| 久久久久久亚洲综合影院红桃| 亚洲午夜成aⅴ人片| 亚洲日韩成人| 欧美国产日韩精品| 久久综合九色九九| 久久激情综合网| 香蕉成人啪国产精品视频综合网| 日韩亚洲精品视频| 亚洲激情电影在线| 樱花yy私人影院亚洲| 黄色精品一二区| 欧美日韩在线观看一区二区| 黄色一区二区三区四区| 国产伦精品免费视频| 欧美视频中文一区二区三区在线观看| 免费久久99精品国产自| 久久综合五月| 欧美成人精品在线观看| 国产精品推荐精品| 免费日韩视频| 亚洲欧美精品| 最新亚洲一区| 久久久噜噜噜久久狠狠50岁| 亚洲免费成人av电影| 国产午夜亚洲精品羞羞网站 | 中文久久乱码一区二区| 麻豆av一区二区三区久久| 99re热这里只有精品免费视频| 国产乱肥老妇国产一区二| 欧美韩日一区| 久久成人免费日本黄色| 一区二区精品| 亚洲大胆美女视频| 久久久青草青青国产亚洲免观| avtt综合网| 亚洲福利视频一区| 国产日韩亚洲欧美| 欧美日韩国产专区| 男同欧美伦乱| 久久久久久久激情视频| 亚洲免费在线视频| 99视频一区二区| 亚洲高清不卡在线观看| 麻豆av福利av久久av| 久久成人精品无人区| 亚洲主播在线观看| 日韩香蕉视频| 亚洲精品美女久久7777777| 一区二区视频免费在线观看| 国产精品影音先锋| 国产精品成人一区| 欧美日韩视频第一区| 欧美激情视频一区二区三区在线播放 | 国产精品美女999| 欧美日韩精品一区二区三区四区| 久久夜色撩人精品| 久久精品中文字幕免费mv| 午夜精品久久久久久久久久久| 中文网丁香综合网| 亚洲图片激情小说| 亚洲永久免费| 午夜精品久久久久| 性8sex亚洲区入口| 亚欧成人精品| 久久精品导航| 裸体一区二区三区| 欧美jizz19hd性欧美| 免费在线观看精品| 欧美—级在线免费片| 欧美精品一区二区三区一线天视频| 免费亚洲一区| 欧美日韩午夜在线视频| 欧美三级欧美一级| 国产精品网站视频| 国产亚洲精品综合一区91| 激情偷拍久久| 亚洲免费观看高清在线观看| 99亚洲视频| 欧美亚洲视频| 欧美成人免费大片| 91久久久久久| 亚洲综合电影一区二区三区| 亚洲欧美一区二区精品久久久| 欧美一区二区三区四区在线| 久久全球大尺度高清视频| 欧美大片在线看| 欧美午夜不卡影院在线观看完整版免费| 国产精品夫妻自拍| 国语精品中文字幕| 9l国产精品久久久久麻豆| 亚洲永久视频| 麻豆精品视频在线观看| 亚洲精品九九| 欧美一区二区三区在线观看视频| 免费不卡在线视频| 国产精品欧美经典| 亚洲人久久久| 欧美在线高清视频| 亚洲福利视频三区| 亚洲男人影院| 欧美精品亚洲精品| 韩国免费一区| 亚洲欧美精品| 亚洲国产美女久久久久| 欧美一级在线视频| 欧美精品尤物在线| 国产一区二区三区最好精华液| 日韩午夜中文字幕| 美女主播一区| 亚洲性夜色噜噜噜7777| 嫩模写真一区二区三区三州| 国产欧美韩日| 亚洲淫性视频| 亚洲精品国产拍免费91在线| 久久久国产午夜精品| 国产精品久久久久久久久借妻| 亚洲国产免费|