举个二叉树例子代码加注释
时间: 2023-07-09 15:04:58 浏览: 77
这是一个二叉树的例子代码,注释在代码中:
```python
class Node:
def __init__(self, data):
self.left = None # 左子节点初始化为空
self.right = None # 右子节点初始化为空
self.data = data # 存储当前节点的数据
# 定义一个函数来遍历二叉树
def traverse(node):
if node is not None:
traverse(node.left) # 先遍历左子树
print(node.data) # 输出当前节点的数据
traverse(node.right) # 再遍历右子树
# 创建一个二叉树
root = Node(1) # 根节点的数据为1
root.left = Node(2) # 左子节点的数据为2
root.right = Node(3) # 右子节点的数据为3
root.left.left = Node(4) # 左子节点的左子节点的数据为4
root.left.right = Node(5) # 左子节点的右子节点的数据为5
# 遍历二叉树
traverse(root)
```
注释中解释了二叉树的节点结构和遍历方式,通过创建节点和连接节点的方式来构建二叉树,并通过递归遍历二叉树来输出节点的数据。
相关问题
举个java二叉树例子代码加注释
好的,下面是一个简单的二叉树的 Java 代码例子,注释在代码中:
```java
// 定义二叉树节点类
class TreeNode {
int val; // 节点的值
TreeNode left; // 左子树节点
TreeNode right; // 右子树节点
// 构造函数
TreeNode(int x) {
val = x;
}
}
// 定义二叉树类
class BinaryTree {
private TreeNode root; // 根节点
// 插入节点
public void insert(int val) {
root = insert(root, val);
}
// 递归插入节点
private TreeNode insert(TreeNode node, int val) {
if (node == null) { // 如果节点为空,则新建一个节点
return new TreeNode(val);
}
// 如果插入的值比当前节点小,则插入左子树
if (val < node.val) {
node.left = insert(node.left, val);
}
// 如果插入的值比当前节点大,则插入右子树
else if (val > node.val) {
node.right = insert(node.right, val);
}
return node;
}
// 中序遍历
public void inorder() {
inorder(root);
}
// 递归中序遍历
private void inorder(TreeNode node) {
if (node == null) {
return;
}
inorder(node.left);
System.out.print(node.val + " ");
inorder(node.right);
}
}
// 示例代码
public class BinaryTreeExample {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(40);
tree.insert(70);
tree.insert(60);
tree.insert(80);
System.out.print("中序遍历结果:");
tree.inorder(); // 中序遍历结果:20 30 40 50 60 70 80
}
}
```
以上代码演示了一个简单的二叉树的定义、插入节点和中序遍历的实现。
阅读全文