Chapter 3 现实模拟
3.1 简单模拟
3.2 栈及其应用
3.3 队列及其应用
3.4 基于二叉堆的优先队列及其应用
3.5 二叉树及其应用
有些计算问题反映的是现实世界中某事物的发展过程。很多情况下,模拟事物发展过程,跟踪反映事物属性的数据变化规律,往往可以得到问题的解。
3.1 简单模拟
如果事物的发展是有节律地重复某些步骤,在重复过程中遵循一定的规律发展,我们往往可以通过循环、条件分支等模拟出事物的发展过程。我们在第1~2章已经看到过多个这样的事物例子。作为简单模拟方法的运用,这里我们再来看两个这样的问题。
问题3-1 对称排序
问题描述
你供职于由一群丑星作为台柱的信天翁马戏团。你刚完成了一个程序编写,它按明星们姓名字符串的长度非降序(即当前姓名的长度至少与前一个姓名长度一样)顺序输出他们的名单。然而,你的老板不喜欢这种输出格式,提议输出的首、尾名字长度较短,而中