class BiTree: def __init__(self): self.root = None def insert(self, data): node = TreeNode(data) if self.root is None: self.root = node else: queue = [self.root] while queue: tree = queue.pop(0) if tree.left is None: tree.left = node break elif tree.right is None: tree.right = node break else: queue.append(tree.left) queue.append(tree.right)
时间: 2024-02-11 22:30:33 浏览: 106
bitree,c语言cin源码,c语言项目
这是一个二叉树的定义以及插入操作的Python代码。
首先,我们定义了一个 `BiTree` 类,并在 `__init__` 方法中初始化了二叉树的根节点 `root` 为 `None`。
接下来,我们定义了一个 `insert` 方法来插入新节点到二叉树中。在方法中,我们首先创建一个 `TreeNode` 对象,并将要插入的数据 `data` 作为参数传递给它。
如果二叉树为空,我们将新节点设置为根节点。
否则,我们创建一个队列 `queue`,并将根节点 `self.root` 加入队列中。然后,我们进入一个循环,直到队列为空为止。在循环中,我们从队列中取出第一个节点 `tree`,并判断它的左右子节点是否为空。
如果左子节点为空,我们将新节点插入到左子节点,并结束循环。
如果右子节点为空,我们将新节点插入到右子节点,并结束循环。
如果左右子节点都不为空,我们将左右子节点依次加入队列中,以便后续继续遍历。
最后,我们完成了二叉树的插入操作。
需要注意的是,上述代码中并没有给出 `TreeNode` 类的定义。如果需要测试该二叉树的功能,还需要定义 `TreeNode` 类并在其中存储节点的数据、左右子节点等信息。
阅读全文