摘要:
原文:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 1.递归实现void 阅读全文
posted @ 2013-11-15 17:49
Andy Niu
阅读(200)
评论(0)
推荐(0)
摘要:
原文:http://www.cnblogs.com/dolphin0520/archive/2011/08/26/2155202.html单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路径。下面证明该性质的正确性。 假设P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,则有P(i,j 阅读全文
posted @ 2013-11-15 17:43
Andy Niu
阅读(659)
评论(0)
推荐(0)
摘要:
1、现讲最优子结构性质,所谓的最有子结构性质是指:一个问题的最优解包含子问题的最优解。最短路径满足最优子结构。MinPath(i,j)表示i与j之间的最短路径。假如MinPath(i,j)={Vi...Vk...Vs...Vj},则MinPath(k,s)={Vk...Vs}。反证法很容易证明:如果MinPath(k,s)≠{Vk...Vs},说明存在一个更短的路径,那么{Vi...Vk...Vs...Vj}也不是最短路径,这与已知条件矛盾。2、思路:Dijkstra最短路径算法满足最优子结构性质,因此每个点只需要知道自己的前驱节点,逆序排一下,就知道了路上的节点。同时,还要记录最短距离。 . 阅读全文
posted @ 2013-11-15 17:41
Andy Niu
阅读(542)
评论(0)
推荐(0)
摘要:
1、解决的问题: 在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法。因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样,因为客户import一个py文件,并不想运行它。如何区分这两种情况呢?2、如何解决: __name__属性,当运行py文件时,它的值是__main__,当import的时候,它的值是文件名。这样在py文件中,就能区分当前文件是被运行还是被import,不同的情况,执行不同的代码。 阅读全文
posted @ 2013-11-15 16:14
Andy Niu
阅读(1652)
评论(0)
推荐(0)
浙公网安备 33010602011771号