
python算法
yunlongliang
不恋过往,不畏将来
展开
-
计算二叉树的个数
说明给定二叉树的节点个数来计算能够构成多少种不同的二叉树。操作采用的是递归的思想来解决这类问题。1、因为采用递归的思想,我们的结束条件就是当节点个数为0.此时节点个数为0的情况,这时候构成的树的情况为空树,即二叉树的个数是1.2、因为是二叉树,我们只需要分为两边来计算。即满足这样的条件,从根节点下来,能够成左边的情况的个数乘以右边的个数的情况想乘,就得到此时这种情况的个数。例如...原创 2018-08-04 09:56:32 · 5993 阅读 · 0 评论 -
python 图 狄克斯特拉算法
说明迪克斯特拉算法,就是在图中,将某一点到达图中任意顶点的权值改变,变成最小的完整代码# coding=utf8a, b, c, d, e, f = range(6)G = { a: {b: 2, c: 1, d: 4, f: 10}, # a b: {a: 2, c: 4, e: 3}, # b c: {a: 1, b: 4, d:...原创 2018-09-05 10:03:13 · 414 阅读 · 0 评论 -
python 图 最小生成树
说明没时间做解释了,下次写完整代码# coding=utf8G = [ {5: 10, 1: 28}, # 0 {0: 28, 6: 14, 2: 16}, # 1 {1: 16, 3: 12}, # 2 {2: 12, 4: 22, 6: 18}, # 3 {3: 22, 5: 25, 6: 24}, ...原创 2018-09-04 19:07:18 · 2495 阅读 · 0 评论 -
python 图 深度广度优先
# coding=utf8from collections import deque# 深度优先遍历G = [ {1, 2, 3}, # 0 {0, 4, 6}, # 1 {0, 3}, # 2 {0, 2, 4}, # 3 {1, 3, 5, 6}, # 4 {4, 7}, # 5...原创 2018-09-04 17:29:42 · 1013 阅读 · 0 评论 -
python 图创建
说明创建图有3种方式1,邻接矩阵2,邻接集合3,邻接字典代码实现# coding=utf8# 对5个顶点进行排序a, b, c, d, e = range(5)# 顶点个数N = 5G = [[0] * N for _ in xrange(N)]# 邻接矩阵# 存储数据有大量空的数据,全是0的情况,在查找某一个顶点的邻接顶点就会遍历所有的顶点def ...原创 2018-09-04 17:19:22 · 5183 阅读 · 0 评论 -
python 二叉树拷贝
说明二叉树拷贝,就是指将一颗二叉树,复制一份代码如下:# 对二叉树进行拷贝# 先对分别对左右子树进行拷贝# 再把其作为新的树的左右子树def copy_tree(node): # 如果是空树,仍然返回空树 if node is None: return None # 分别把所有的节点递归添加到这个树中 lt = copy_tre...原创 2018-09-04 17:13:41 · 1493 阅读 · 0 评论 -
python 二叉树的深度
说明二叉树的深度,就是二叉树的层数,在层序遍历中,总共有多少层,二叉树的深度就是多少代码# 计算二叉树的深度def depth(node): # 二叉树为空树,层数就是0 if node is None: return 0 # 采用分而治之的思想来做,即把一棵树分成左右两边来分别计算其深度 # 左子树的深度 dl = dept...原创 2018-09-04 17:10:25 · 2930 阅读 · 0 评论 -
二叉树遍历
遍历方式1、NLR:前序(Preorder Traversal 亦称(先序遍历)) 访问根结点的操作发生在遍历其左右子树之前。2、LNR:中序遍历(Inorder Traversal)访问根结点的操作发生在遍历其左右子树之中(间)。3、 LRN:后序遍历(Postorder Traversal)访问根结点的操作发生在遍历其左右子树之后。4、层序遍历设二叉树的根节点所...原创 2018-08-05 22:23:50 · 489 阅读 · 0 评论 -
二叉树的创建(python)
说明1、构造器,定义一个构造器,用来构造树。2、向树中添加数据。如图我们定义了这样一颗二叉树,我们用代码来创建它用代码实现,代码如下:#coding=utf-8class TreeNode(object): def __init__(self,data=None,left=None,right=None): self.data = data...原创 2018-08-04 13:41:08 · 16299 阅读 · 4 评论 -
python 计算无重复字符串
代码实现def no_repeat_str(str): # 计算出字符串的总长度,即循环的次数 length = len(str) # 存放无重复字串,把所有可能的无重复的字串都放在这里面 result = [] # 遍历每一个字符 for i in range(length): # 这个用来保存每一个阶段的无重复的字符串 ...原创 2018-09-05 11:11:55 · 1388 阅读 · 0 评论