欢迎来到杨河的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

2019年9月9日

python中的嵌套类

摘要:python中的嵌套类 在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说嵌套类解决设计问题同时简化了程序,值得学习。 上面是一个借鉴web.py框架中的一个例子,下面print a部分是我 阅读全文

posted @ 2019-09-09 19:36 橘子味的猫啊 阅读 (38) 评论 (0) 编辑

2019年9月7日

python抽象基类

摘要:抽象基类 抽象基类提了一种方式,用以组织对象的层次结构,做出关于所需方法的断言,以及实现其他一些功能 要定义抽象基类,需要使用abc模块,该模块定义了一个元类(ABCMeta) 和一组装饰器(@abstractmethod 和 abstractproperty)用法如下: 1 from abc im 阅读全文

posted @ 2019-09-07 16:12 橘子味的猫啊 阅读 (8) 评论 (0) 编辑

2019年8月26日

二叉树的遍历非递归实现

摘要:二叉树的遍历非递归实现 二叉树的非递归遍历使用栈来实现 由于才用先跟序,遇到节点就应该访问,下一步应该沿着该树的左支下行。 但节点的又支还没有访问,因此需要记录,将又节点压入栈中。 遇到空树就溯回,取出栈中的一个又分支,像一颗二叉树一样遍历它。 代码: 通过生成器函数遍历 用Python写程序时,在 阅读全文

posted @ 2019-08-26 13:13 橘子味的猫啊 阅读 (7) 评论 (0) 编辑

2019年8月25日

大顶堆的实现

摘要:大顶堆的实现 1.什么是堆 堆结构就是一种完全二叉树。堆可分为最大堆和最小堆,区别就是父节点是否大于所有子节点。最大堆的父节点大于它的子节点,而最小堆中子节点大于父节点。看图有个清晰的认识: 2. 堆的表示 堆可以使用list实现,就是按照层序遍历顺序将每个节点上的值存放在数组中。父节点和子节点之间 阅读全文

posted @ 2019-08-25 13:43 橘子味的猫啊 阅读 (13) 评论 (0) 编辑

二叉树的实现(补充)

摘要:二叉树的实现(补充) 本次实现的二叉树包括二叉树的先序遍历,中序遍历和后序遍历以及二叉树的层序遍历,还包括二叉树的高度,叶子节点以及反转二叉树 二叉树的层序遍历依然是使用Python内置的deque实现一个队列,根据队列先进先出(FIFO)的性质,先把二叉树的根节点放入队列中,判断队列是否为空,如果 阅读全文

posted @ 2019-08-25 13:21 橘子味的猫啊 阅读 (29) 评论 (0) 编辑

二叉树的实现

摘要:二叉树的实现 1.二叉树的节点类 由于二叉树由一组节点组成,首先定义一个表示二叉树节点的类。节点通过链接引用其子节点,没有子节点时python用None表示,也就是说空二叉树直接用None表示。 下面是用python定义的二叉树节点的类: 2.构建二叉树 3.用python内置的deque实现队列 阅读全文

posted @ 2019-08-25 13:05 橘子味的猫啊 阅读 (18) 评论 (0) 编辑

导航