摘要: >>> Blog 随笔原始文档及源代码 -> github: https://github.com/StackLike/Python_Note >>> 统计信息 -> 随笔总篇数: 108 随笔总字数: 181,218 </2017><2018> 随笔字数: 3,461 发布时间: 2018-01- 阅读全文
posted @ 2018-01-01 00:00 StackLike 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 像编程一样使用Vim 目录 1. 为什么是Vim / Why Vim Vim是一款古老的编辑器,可经过了这么多年依旧有许多忠实的使用者,也有许多新人不断加入使用Vim的行列,可以看出,这个具有年代感的编辑器一定拥有着某种魅力。 使用Vim的理由有很多,最直接的就是Vim的无处不在,基本上只要有Lin 阅读全文
posted @ 2018-09-14 21:05 StackLike 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 使用协程建立自己的异步非阻塞模型 接下来例子中,将使用纯粹的Python编码搭建一个异步模型,相当于自己构建的一个asyncio模块,这也许能对asyncio模块底层实现的理解有更大的帮助。主要参考为文末的链接,以及自己的补充理解。 完整代码 1 #!/usr/bin/python 2 # 3 # 阅读全文
posted @ 2018-01-29 20:19 StackLike 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 协程 / Coroutine 目录 协程是在一个线程执行过程中可以在一个子程序的预定或者随机位置中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。它本身是一种特殊的子程序或者称作函数。 一个程序可以包含多个协程,可以对比与一个进程包含多个线程。我们知道多个线程相对独立,有自己的上下文,切换 阅读全文
posted @ 2018-01-29 19:57 StackLike 阅读(1713) 评论(0) 推荐(0) 编辑
摘要: 偏函数 / Partial Function 使用偏函数可以对函数的部分预先知道的参数进行冻结,从而缓存函数参数,而在运行时再释放参数进行使用。所以偏函数适用于需要多次调用同样一个函数且其中一个参数固定已知的情况下。 偏函数的使用方式主要如下, 可以看到,利用偏函数可以生成一个新的函数类,这点在GU 阅读全文
posted @ 2018-01-29 19:34 StackLike 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 开放定址散列法和再散列 目录 1 开放定址散列法 前面利用分离链接法解决了散列表插入冲突的问题,而除了分离链接法外,还可以使用开放定址法来解决散列表的冲突问题。 开放定址法在遇见冲突情形时,将会尝试选择另外的单元,直到找到空的单元为止,一般来说,单元h0(X), h1(X), h2(x)为相继尝试的 阅读全文
posted @ 2018-01-16 20:10 StackLike 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 分离链接法 / Separate Chain Hashing 前面完成了一个基本散列表的实现,但是还存在一个问题,当散列表插入元素冲突时,散列表将返回异常,这一问题的解决方式之一为使用链表进行元素的存储,即分离链接法。 而在利用链表实现分离链接法时,可选用带表头的链表,插入元素时采用前端插入,每次将 阅读全文
posted @ 2018-01-16 19:31 StackLike 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 散列表 / Hash Table 散列表与散列函数 散列表是一种将关键字映射到特定数组位置的一种数据结构,而将关键字映射到0至TableSize-1过程的函数,即为散列函数。 下面以一个简单的散列函数 Hash(Key)=Key mod TableSize为例,完成一个散列表的实现。 Note: 为 阅读全文
posted @ 2018-01-16 19:16 StackLike 阅读(694) 评论(0) 推荐(0) 编辑
摘要: AVL 平衡树和树旋转 目录 1 AVL平衡二叉树 AVL(Adelson-Velskii & Landis)树是一种带有平衡条件的二叉树,一棵AVL树其实是一棵左子树和右子树高度最多差1的二叉查找树。一棵树的不平衡主要是由于插入和删除的过程中产生的,此时则需要使用旋转来对AVL树进行平衡。 插入引 阅读全文
posted @ 2018-01-15 23:18 StackLike 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 表达式树和查找树的 Python 实现 目录 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不过在遇到运算符时不是进行计算,而是将树节点赋值为运算符,并将节点的左右叶子指向两个变量构成一个基本的二叉树后再压入栈中。 下面 阅读全文
posted @ 2018-01-14 23:36 StackLike 阅读(3229) 评论(0) 推荐(0) 编辑
摘要: 二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点。 对于二叉树的遍历,主要有以下三种基本遍历方式: 下面将用代码构建一个二叉树,并实现三种遍历方式, 完整代码 1 class TreeNode: 2 def __init__(self, val=N 阅读全文
posted @ 2018-01-14 22:41 StackLike 阅读(1374) 评论(0) 推荐(1) 编辑