当前位置: 首页> 文旅> 文化 > 常州网官网_网站定制设计价目表_怎么上百度推广产品_网站流量统计工具有哪些

常州网官网_网站定制设计价目表_怎么上百度推广产品_网站流量统计工具有哪些

时间:2025/7/15 21:56:19来源:https://blog.csdn.net/Runner__Binger/article/details/142746493 浏览次数:0次
常州网官网_网站定制设计价目表_怎么上百度推广产品_网站流量统计工具有哪些

当然,下面是如何在Java和Python中表示二叉树,并给出一些常见操作的代码示例。

Java 表示二叉树及常见操作

1. 定义节点类
class TreeNode {  int val;  TreeNode left;  TreeNode right;  TreeNode(int x) {  val = x;  left = null;  right = null;  }  
}

 

2. 常见操作

插入节点(以根节点和值为参数)

public class BinaryTree {  private TreeNode root;  public BinaryTree() {  root = null;  }  // 插入节点  public void insert(int val) {  root = insertRec(root, val);  }  private TreeNode insertRec(TreeNode root, int val) {  if (root == null) {  root = new TreeNode(val);  return root;  }  if (val < root.val) {  root.left = insertRec(root.left, val);  } else if (val > root.val) {  root.right = insertRec(root.right, val);  }  return root;  }  // 查找节点  public boolean search(int val) {  return searchRec(root, val);  }  private boolean searchRec(TreeNode root, int val) {  if (root == null) {  return false;  }  if (root.val == val) {  return true;  }  return val < root.val ? searchRec(root.left, val) : searchRec(root.right, val);  }  // 中序遍历  public void inorder() {  inorderRec(root);  }  private void inorderRec(TreeNode root) {  if (root != null) {  inorderRec(root.left);  System.out.print(root.val + " ");  inorderRec(root.right);  }  }  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.println("中序遍历结果:");  tree.inorder();  System.out.println("\n查找70: " + tree.search(70));  System.out.println("查找99: " + tree.search(99));  }  
}

Python 表示二叉树及常见操作

1. 定义节点类
class TreeNode:  def __init__(self, x):  self.val = x  self.left = None  self.right = None

 

2. 常见操作

插入节点(以根节点和值为参数)

class BinaryTree:  def __init__(self):  self.root = None  # 插入节点  def insert(self, val):  self.root = self._insert_rec(self.root, val)  def _insert_rec(self, root, val):  if root is None:  root = TreeNode(val)  return root  if val < root.val:  root.left = self._insert_rec(root.left, val)  elif val > root.val:  root.right = self._insert_rec(root.right, val)  return root  # 查找节点  def search(self, val):  return self._search_rec(self.root, val)  def _search_rec(self, root, val):  if root is None:  return False  if root.val == val:  return True  return self._search_rec(root.left, val) if val < root.val else self._search_rec(root.right, val)  # 中序遍历  def inorder(self):  self._inorder_rec(self.root)  print()  # 换行  def _inorder_rec(self, root):  if root is not None:  self._inorder_rec(root.left)  print(root.val, end=' ')  self._inorder_rec(root.right)  # 测试代码  
if __name__ == "__main__":  tree = BinaryTree()  tree.insert(50)  tree.insert(30)  tree.insert(20)  tree.insert(40)  tree.insert(70)  tree.insert(60)  tree.insert(80)  print("中序遍历结果:")  tree.inorder()  print(f"查找70: {tree.search(70)}")  print(f"查找99: {tree.search(99)}")

总结

  • Java 使用类 TreeNode 来定义节点,并通过递归方法实现插入、查找和中序遍历。
  • Python 同样使用类 TreeNode 来定义节点,并通过递归方法实现插入、查找和中序遍历。

这些代码示例展示了如何在两种语言中构建二叉树并执行基本操作。希望这对你有所帮助!

关键字:常州网官网_网站定制设计价目表_怎么上百度推广产品_网站流量统计工具有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: