
数据结构与算法
lee_eric
这个作者很懒,什么都没留下…
展开
-
数据结构复习篇:线性表
数据结构与算法,是编写高质量程序的内功之一,在打算步入社会寻找自己的第一份工作之际,我准备用一周左右的时间来复习一遍数据结构与算法。在任何时候重视基础知识,都不是一件多余的事。复习用书:《数据结构与算法分析 C++版》第二版 [美] Clifford A.Shaffer著,张铭、刘晓丹 等译 电子工业出版社一、线性表线性表是这样一种表结构,它的元素element存放在一个连续的表中转载 2006-10-03 18:27:00 · 1067 阅读 · 1 评论 -
数据结构复习篇:栈
二、栈栈是一种“发育不良”的线性表,它具有与线性表相同的存储结构(基于数组的或基于链于的),但栈的“缺陷”---不能像线性表那样具有插入、删除操作---反而给了它独有的特色。在后面将会发现,递归,可以用栈来实现。 在时间复杂度上,基于数组的栈AStack和链式栈LStack,在push()、pop()操作上,都是一个时间常数1。在我的测试中,10万次push()和10万次pop()后,基于转载 2006-10-03 18:50:00 · 752 阅读 · 0 评论 -
数据结构复习篇:用栈实现递归
也许大家会疑问:复习完栈应该到队列了吧。我开始也是这样想的,但用栈实现递归,是一个难点。说实话,我以前学习的时候,就在这一处卡住了,当时我烦躁了好几天,但可能由于突然被什么东西转移了注意力,所以就这样跳过去了。不知道用栈实现递归,也确实不大影响后面的学习,但我可以肯定,如果你觉得世界上有一些东西难以理解而不愿面对,那自信将会由此削弱。当然,遇到困难可以适当地把它放下,但逃避应该是暂时的,必须鼓励自转载 2006-10-03 18:52:00 · 1150 阅读 · 0 评论 -
递归、闭合形式解(closed form solution)
一、递归的意义。我以前一直误解了递归的意义,并为自己能在程序中多写几个递归高兴。现在我发现错了!递归显然能让程序看起来非常简洁,但是,由于会引起函数的多次调用,将大大的降低程序的效率。那我们讨论递归干什么?基于以下这两个愿因:第一,也是最重要的原因,递归告诉了我们一种思考问题的方法。因为,确实是有一些问题,如果不用递归的思想去思考,我们将束手无策!最明显的例子就是汉诺塔的问题转载 2006-10-03 18:57:00 · 3912 阅读 · 0 评论