最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C语言数据结构实现银行模拟的教程
时间:2017-08-21 编辑:猪哥 来源:一聚教程网
实现代码:
#include#include #include #define MAX_WIN 20 #define MAX_STAY 100 typedefstructcustomer *link; structcustomer { intstay; link next; }; link GUY(intstay, link next) { link c =malloc(sizeof*c); c->stay = stay; c->next = next; returnc; } link win[MAX_WIN]; voidmorning() { inti; for(i = 0; i < MAX_WIN; i++) { win[i] = NULL; } } voidcome(intw,intstay) { 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); } voidleave(intw) { 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); } } voidguys() { inti; 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); } voidlater() { inti; 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); } } intmain() { srand(time(NULL)); for(morning; ;later()) { come(rand()%MAX_WIN,rand()%MAX_STAY+1); } return0; }
由于这里是生成的随机数,所以程序会一直在变化。按住ctrl +c 终止程序
-
上一个: C语言数据结构旋转链表的实现
-
下一个: C++ 中继承与动态内存分配的详解
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- C语言中atoi函数模拟实现介绍 10-18
- C#中ArrayList 类的使用介绍 09-22
- C#非托管泄漏中HEAP_ENTRY的Size对不上解析问题解决方法 09-22
- C#序列化与反序列化集合对象并进行版本控制的方法 09-19
- C#枚举高级战术代码解析 10-13