• 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

用python写一个快速生成树代码

时间2023-03-03 16:43:28 提问来自 湖北省武汉市 的网友 分类创作 浏览421
```python # 定义一个节点类 class Node: def __init__(self, data): self.data = data # 节点的数据域 self.left = None # 左子节点的引用域 self.right = None # 右子节点的引用域 # 构造二叉树,使用列表来表示树中各个节点之间的关系,0表示该位是叶子节点,-1表示该位没有孩子。例如[-1, 0, 0]代表一颗包含一个根节点和两个叶子节点的二叉树。 def createTree(tree_list): # tree_list 是列表形式的二叉树信息 if tree_list[0] == -1: # 若root是-1(即无孩子)则返回None return None root = Node(tree_list[0]) # 构造root nodeQueue = [root] # 由于要逐层遍历,所以使用队列来保存当前处理过的元 素 index = 1 # index用来控制nodeQueue中元 素出队时对应tree_list中元 素出队 front = 0 # front 控制nodeQueue中出队元 素在tree_list中对应位 置 while index < len(tree_list): node = nodeQueue[front] front += 1 item = tree_list[index] index += 1 if item != -1: # 若item不为-1 (即有孩子) # 首先将item封装成Node实例 newNode=Node(item) nodeQueue.append(newNode) if node.left is None: node.left=newNode else: node.right=newNode else : continue return root ```

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 美国封杀tiktok符合长期利益么 下一篇 请进一步思考兴趣,并反思个人兴趣是怎么影响现在的专业和未来的职业选择?