
基础算法
那时的风儿
这个作者很懒,什么都没留下…
展开
-
图的常用算法的 python 实现—邻接表表示法
#图的邻接链表表示法graph = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C','G','H'], 'E': ['F'], 'F': ['C']}#从图中找出任意一条从起始顶点到终止顶点的路径原创 2017-03-12 19:48:55 · 11950 阅读 · 0 评论 -
用嵌套列表表示的二叉树的相关操作
#coding:utf-8__author__ = 'lv'tree = ["a",["b",["d",[],[]],["e",[],[]]],["c",["f",[],[]],["g",[],[]]]]#查找二叉树中路径最远的节点和最长路径。vertex_len = {}def dfs(tree,length): vertex_len[tree[0]] = length原创 2017-03-15 20:53:19 · 1802 阅读 · 0 评论 -
python生成n个元素的全组合
利用二进制反格雷码(bynary reflected Gray code)的方式生成n个元素的全组合,Cn1+Cn2+...+Cnn,如在利用穷举方法解决背包问题时,就需要找出物品的所有组合的子集。如有物品1,2,3.我们就可以生成3个位串的格雷码,0表示不选择该物品,1表示选择该物品。算法如下所示:import copydef brgd(n): ''' 递归生成n原创 2017-05-07 16:44:19 · 5204 阅读 · 0 评论