摘要: 深度优先搜索算法(转)深度优先搜索算法需要了解深度优先遍历的执行过程,本文中利用一个栈来模拟递归实现中系统设置的工作栈,算法的伪代码描述为: (1)初始化栈 (2)输出起始节点,并标记为已访问,将该节点压入栈 (3)While(栈不为空) a.取得栈顶节点Top,注意不要从站内删除; b.遍历栈顶节点Top的相邻节点adjacentNode,如果该节点adjacentNode未被标记为已 访问,则 输出节点adjacentNode; 标记adjacentNode为已访问; 把adjacentNode压入栈; c.如果没有满足条件的相邻节点adjacentNode,将栈顶节点Top出栈;使用情形 阅读全文
posted @ 2013-08-20 23:10 强子~Developer 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 广度优先算法(转)http://blog.csdn.net/furturerock/article/details/5568305空间复杂度因为所有节点都必须被储存,因此BFS的空间复杂度为 O(|V| + |E|),其中 |V| 是节点的数目,而 |E| 是图中边的数目。注:另一种说法称BFS的空间复杂度为O(BM),其中 B 是最大分支系数,而 M 是树的最长路径长度。由于对空间的大量需求,因此BFS并不适合解非常大的问题。时间复杂度最差情形下,BFS必须寻找所有到可能节点的所有路径,因此其时间复杂度为 O(|V| + |E|),其中 |V| 是节点的数目,而 |E| 是图中边的数目。若所 阅读全文
posted @ 2013-08-20 18:21 强子~Developer 阅读(1065) 评论(0) 推荐(0) 编辑