您好,登錄后才能下訂單哦!
C語言數據結構實現銀行模擬
實現代碼:
#include <stdio.h> #include <stdlib.h> #include <windows.h> #define MAX_WIN 20 #define MAX_STAY 100 typedef struct customer *link; struct customer { int stay; link next; }; link GUY(int stay, link next) { link c = malloc(sizeof *c); c->stay = stay; c->next = next; return c; } link win[MAX_WIN]; void morning() { int i; for(i = 0; i < MAX_WIN; i++) { win[i] = NULL; } } void come(int w, int stay) { if(win[w] == NULL) { win[w] = GUY(stay, NULL); win[w]->next = win[w]; } else win[w] = win[w]->next = GUY(stay, win[w]->next); } void leave(int w) { if(win[w]->next == win[w]) { free(win[w]); win[w] = NULL; } else { link t = win[w]->next; win[w]->next = t->next; free(t); } } void guys() { int i; link t; system("clear"); for(i = 0; i < MAX_WIN; i++, puts(" ")) { printf("WIN%3d:_", i); if((t = win[i]) == NULL) continue; for(; t->next != win[i]; t = t->next) { printf("%4d", t->next->stay); } } Sleep(1); } void later() { int i; for(guys(), i = 0; i < MAX_WIN; i++) { if(win[i] == NULL) continue; if(win[i]->next->stay > 0) (win[i]->next->stay)--; else leave(i); } } int main() { srand(time(NULL)); for(morning; ;later()) { come(rand()%MAX_WIN, rand()%MAX_STAY+1); } return 0; }
由于這里是生成的隨機數,所以程序會一直在變化。按住ctrl +c 終止程序
以上就是C語言數據結構實現銀行模擬的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。