参考别人代码实现二叉树
来源:互联网 发布:亲和素淘宝扒皮 编辑:程序博客网 时间:2024/05/16 10:03
#encoding=utf-8class TreeNode: """ 树节点类 """ left,right,data=None,None,0 def __init__(self,data): #self.parent=None self.left=None self.right=None self.data=dataclass BinaryTree: """ root表示根节点,currentNode当前遍历到的节点 """ root=None currentNode=root def __init(self,root=None): self.root=root self.currentNode=root def addNode(self,data): return TreeNode(data) def insert(self,root,data): if root ==None: return self.addNode(data) else: if data<=root.data: root.left=self.insert(root.left,data) else: root.right=self.insert(root.right,data) return root def lookup(self,root,target): if root==None: return 0 else: if target==root.data: return 1 elif root.data<target: return self.lookup(root.right,target) else: return self.lookup(root.left,target) def minValue(self,root): if root.left==None: return root.data else: return self.minValue(root.left) def maxDepth(self,root): if root==None: return 0 else: return max(self.maxDepth(root.left),self.maxDepth(root.right))+1 def size(self,root): if root==None: return 0 else: return 1+self.size(root.left)+self.size(root.right) def printTree(self,root): if root==None: pass else: self.printTree(root.left) print root.data, self.printTree(root.right)if __name__=='__main__': ds=[5,6,4,10,8,7,2] BTree=BinaryTree() BTree.root=BTree.addNode(ds[0]) for i in ds[1:]: BTree.insert(BTree.root,i) BTree.printTree(BTree.root)。。。
起初我还以为很简单的。。虽然确实是很简单,但是
写到insert那个方法 ,我就不知道怎么写了。。
真是太水了都。。。
,
那两个return 确实令人有些费解呢。
其余大部分的功能都能写。
不过,在写函数的时候,必须对BTree.root在循环外赋值,好不爽啊。想弄在循环里面赋值,却是各种不行啊
。。刚刚想了下,可把for里面的循环改成这样:
BTree.root=BTree.insert(BTree.root,i)
。其余感觉还好。。。
-----talk is simple,show code....................................
0 0
- 参考别人代码实现二叉树
- 粘贴别人代码--参考
- 2二叉树参考代码.
- 参考别人代码的问题
- 重言式判定------参考了别人的代码。。
- 二叉树实现代码
- android实现图片拖拽效果(参考了一下别人的代码)
- 二叉查找树代码实现
- 二叉树代码实现笔记
- 二叉平衡树代码实现
- 【POJ2796】代码,非原创,参考的别人的文章
- 查找头文件 or 参考别人写的代码
- 汇编实现贪吃蛇(参考修改别人的)
- 二叉树之二--普通二叉树代码实现
- 二叉树之三--线索二叉树之代码实现
- 二叉树的性质及实现代码 !!!!
- 线索二叉树的代码实现
- 二叉搜索树 及 c++代码实现
- 转: IOS ----UIButton用法详解
- Basic Level 1008. 数组元素循环右移问题 (20)
- 转:IBOutlet和IBAction
- 转:nonatomic与atomic的区别
- 转:iOS strong 和weak的形象理解
- 参考别人代码实现二叉树
- C语言编辑计算器(含括号)
- viewDidLoad,viewDidUnload
- 双子座的ios1
- 转:ios7(自动旋屏)iOS6不支持shou…
- ios开发--loadView和viewDid…
- 使用系统自带的 UIRefreshControl 实现下拉刷新
- ios资源地址
- UIPickerView常用方法详解