#算法#队列和链表无处不在
请查看原文:
?
http://www.ibaiyang.org/2012/11/20/queue-list/
?

在我读严蔚敏版的《数据结构》的时候,看到其中一个例子,让我对数据结构佩服的五体投地,让人把如此的一个问题分析的这么透彻,十分钦佩。也让我明白了一个道理,在设计好的算法之前,一定要设计好的数据结构,当你设计了好的数据结构之后,反而会为你写算法有很大的帮助,这是我深有体会的。
在这里,就将在重复一下这个例子吧,方便以后借鉴,这个例子主要是模拟离散事件的例子。
引言
在日常生活中,我们经常会遇到各种排队的事情,比如乘地铁,去食堂就餐。我们就以去银行办理业务为例,在我们走进银行之后,我们需要到窗口办理自己的业务。
现在需要编制一个软件,模拟银行的这种业务活动并计算一天客户中在银行逗留的平均时间。
在这里,需要满足以下条件:
- 进来的客户是随即的;
- 进来之后的客户选择较短的队列排队;
为了计算客户在一天当中的平均逗留时间,需要知道每个客户在银行的逗留时间,然后其每个客户逗留时间之和除以总人数既是平均逗留时间。在通常情况下,我们知道客户到达和离开银行的时间,自然知道每个客户在银行的逗留时间。所以,我们将客户达到和离开银行这二个时刻发生的事情称为“事件”,整个模拟程序是按照事件发生的先后顺序来进行处理,这样一种模拟程序称作“事件驱动模拟”。
实现
以下描述正是上述银行客户的离散事件驱动模拟程序:
}
为什么我说这是事件驱动模型呢,因为我觉得,当生产出来了资源,即v不为空时,自然会唤醒consume线程去消费它,相反,当v为空时,又会唤醒produce生产资源,其中的唤醒类似驱动原理。
【注】如有理解偏差,实属能力问题,本人还在努力之中,共同进步。
-----------------打造高质量的文章 更多关注 把酒泯恩仇---------------
为了打造高质量的文章,请??推荐? 一下吧。。。。谢谢了,请关注我后续的文章,会更精彩哦
请关注sina微博:http://weibo.com/baiyang26
把酒泯恩仇官方博客:http://www.ibaiyang.org?【推荐用google reader订阅】
把酒泯恩仇官方豆瓣:http://www.douban.com/people/baiyang26/
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言