摘要:十二、为了count的最终胜利 在介绍完最基本的堆栈模型之后,下面要继续的是第二种最基本的模型,队列。队列,在现实生活中经常可以看到(不过考虑到在我国大部分人都不排队的事实,可能还真不是能经常看到),计算机最开始需要这样一个模型是为了解决在计算机的初期,放入计算机执行的作业排队的问题。现在队列同样也在计算机中有着广泛的应用,windows的消息队列,操作系统进行调度的作业等等,和堆栈一样,基础的东西往往在构成庞大系统中发挥着重要的作用。 先来介绍一下队列的模型的概念,如果你看到现实生活中的队列能抽象出什么特点?数学家和一般人差别就是他们能够从任何常见的事物中抽象出模型,然后用数字公式描绘他们,
阅读全文
摘要:十一、不能被应用的理论不是好研究 前面介绍了堆栈的一些小小的理论模型,那么这样一个东西有什么作用呢?实际中不可能有那么一辆停在站台前方堵死的火车的,即使有,也不需要用什么计算机的数据结构模拟。如果一个理论没有其运用价值那么它的归宿只能是慢慢被人淡忘,但是也有个别例外的,比如线性代数在发明之时被认为毫无用武之地,但是在很多年后线性代数成为了量子力学的数学技术,乃至现在信息科学的数学基础,相比这个例子,没有找到用武之地而最终被人遗忘与沙海的理论还是占了绝大多数,所以,说了这么多,在编码这种实际操作性强的事物上你能学到的大部分理论模型能展现在你的面前,都说明这些理论在实践中已经有了很广泛的应用,并且
阅读全文
摘要:十、装配火车的乐趣 国庆放假结束了,第一天真是不想来上班啊,接着国庆之前的吧,上一篇写的是利用数组实现堆栈的结构,使用数组的两个致命的弱点是大小必须在使用前指定和效率非常差。那么先前的大牛们就开始思考如何提高效率呢?而在C/C++语言里有一种可以直接操作内存的东西叫做指针并且可以动态指定大小,于是不得不让人思考怎么样利用指针来克服原有的弱点重新实现数据结构。 在使用指针实现之前,先看看数组为什么能实现堆栈等类似的结构,首先,一个数组可以通过下标来进行遍历,也就是说可以让我们从一个元素寻访到下一个元素或者某一个元素,第二个,数组可以包含元素。那么我们需要用指针也构造出具有这样两个特点的一个结构出
阅读全文