楼主: littlelianglian
2579 2

Python 实现 二叉树的方法 [推广有奖]

贵宾

学术权威

72%

还不是VIP/贵宾

-

威望
3
论坛币
497776 个
通用积分
9294.6090
学术水平
355 点
热心指数
303 点
信用等级
328 点
经验
105042 点
帖子
3169
精华
16
在线时间
3269 小时
注册时间
2013-9-4
最后登录
2024-10-8

一级伯乐勋章 初级学术勋章 初级信用勋章

楼主
littlelianglian 发表于 2014-6-6 09:41:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本文转自 Python Tab 论坛

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二叉树实现代码:

代码如下:
[code brush:python;toolbar:false;]class Node:
def __init__(self, data = None, left = None, right = None):
self.data = data
self.left = left
self.right = right
class BTree:
def __init__(self, root = None):
self.root = root
def traverse(self, visit):
def tr(node, visit):
if node:
tr(node.left, visit)
tr(node.right, visit)
visit(node.data)

def tr1(node, visit):
stack = []
while len(stack) 0 or node:
if node:
stack.append(node)
node = node.left
else:
node = stack.pop()
visit(node.data)
node = node.right

def tr2(node, visit):
pre = None
stack = []
while len(stack) 0 or node:
while node:
stack.append(node)
node = node.left
node = stack.pop()
if node.right == None or node.right == pre:
visit(node.data)
pre = node
node = None
else:
stack.append(node)
node = node.right


tr(self.root, visit)
print("*******************")
tr2(self.root, visit)

t = BTree(Node("ROOT", Node("Left", Node("left-left"), Node("left-right")), Node("Right", Node("right-left"), Node("right-right"))))
t.traverse(print)[/code]








二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 二叉树 TRAVERS toolbar append 二叉树




CDA数据分析交流群 217748971

沙发
backpack40 发表于 2014-6-12 15:31:35
看看!

藤椅
zxun 发表于 2015-10-31 17:11:33
看不懂

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 03:40