- 博客(4)
- 收藏
- 关注
原创 Morris,我想让你遍历我的二叉树!
Morris算法是一种遍历二叉树的高效方法,在空间复杂度O(1)的情况下实现了先序遍历、中序遍历和后序遍历,并且时间复杂度为O(n)。相比于传统方法使用栈空间,Morris算法可以大大减少深度优先搜索时所需的空间。本篇博客在介绍Morris算法的过程中,特别以Python实现来控制代码的思路和执行方式,让读者更加易懂,在基本概念和实践操作之间切换,达到一定的学习效果。
2024-03-19 14:13:44 676
原创 二叉树创建,添加功能优化(比一般的要快很多)+4种遍历二叉树方法
curnode=self.stack[0] #出栈,但是我并没有pop出来,原因是我先判断这个节点有没有满,满了再pop,当下一次再调用add时,不用重新检索。# 和上一种情况类似,因为既然没有有孩子,则可以把元素添加到此位置,然后此节点就满了,满了就应该pop,然后将其左孩子和右孩子添加到stack里面。self.stack = [self] # stack用于后面二叉树添加元素,初始化栈,把stack当作self的属性,保留上一次查找后的剩余的数据。#如果左节点无元素,则添加在此节点。
2023-12-27 20:37:15 889 1
原创 关于Python魔术方法__iter__与__next__的结合使用~~~
Python对于创建对象时,有时需要将该对象迭代输出,如何进行这一操作则可以用的的__iter__与__next__这两个object类方法,这两个魔术方法,对列表(list),元组(tuple)等可迭代对象的迭代都做了十分大的贡献~~~~~
2023-12-20 13:11:12 437
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人