从零开始学算法
文二鱼
IT初入者,魔术爱好者,咏春拳爱好者。
希望成为:IT运维专家,业余魔术师,咏春拳教练。
展开
-
广度优先搜索,深度优先搜索
在通信相关的问题中,图论算法是一个实用性很强的理论知识点。 图论算法的两种最基本算法,深度优先算法,广度优先算法。 广度优先搜索算法相对比较简单。一个实例是求单源无权最短路径问题。广度优先算法,顾名思义,是在搜索的广度上组织程序的,利用的数据结构是队列。 将节点分为两类,已发现、未发现。最初已发现节点为源节点一个,其余均为未发现节点。首先将源节点加入原创 2013-11-20 16:13:27 · 553 阅读 · 0 评论 -
链表、队列、二叉树结构
作为最初级的数据结构,链表、队列、二叉树是需要特别熟悉的。 之所以使用链表,是因为C语言自带的数组存在一定的不足之处。数组的两个不足之处,一是删除困难,如果删除数组中一个数据,接下来的需要将被删除数据之后的每一个数据前提一位;二是数组的大小不能在程序运行过程中动态改变,为了满足要求,需要按最坏情况设计其大小,这会造成存储空间的浪费。 当然,链表也有其不足之处,链表不支持随机访问,如原创 2013-11-08 10:38:51 · 582 阅读 · 0 评论 -
ABSTACT DATA TYPE(ADT)
cprimer plus中,前十六章都是一些规范化的东西,没什么好说的,记住怎么用就好,而在第十七章,则对高级一点的程序设计,算法设计有了一点很浅的涉及。 上一篇文章提到了三种数据结构,链表、队列、二叉树。实际上,在设计数据结构的过程中,也是有着一个比较通用的设计思想的,这个思想就是利用ADT来设计数据结构。 何为ADT,abstract data type,顾名思义,这是一种抽象的、人为定义原创 2013-11-08 10:54:41 · 606 阅读 · 0 评论