Java二叉树实现加减乘除,以及保存这个结构的数据库表
时间: 2023-12-01 17:17:00 浏览: 62
二叉树之二叉链表
5星 · 资源好评率100%
好的,我会尽力回答你的问题。
首先,Java二叉树可以通过节点类和树类来实现。节点类包含节点值和左右子节点,树类包含根节点以及遍历、插入、删除等操作方法。以下是一个简单的Java二叉树实现:
```
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
class BinaryTree {
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 {
node.right = insert(node.right, val);
}
return node;
}
public void traverseInOrder() {
traverseInOrder(root);
}
private void traverseInOrder(TreeNode node) {
if (node != null) {
traverseInOrder(node.left);
System.out.print(node.val + " ");
traverseInOrder(node.right);
}
}
public int evaluate() {
return evaluate(root);
}
private int evaluate(TreeNode node) {
if (node == null) {
return 0;
}
if (node.left == null && node.right == null) {
return node.val;
}
int leftVal = evaluate(node.left);
int rightVal = evaluate(node.right);
switch (node.val) {
case '+':
return leftVal + rightVal;
case '-':
return leftVal - rightVal;
case '*':
return leftVal * rightVal;
case '/':
return leftVal / rightVal;
default:
return 0;
}
}
}
```
这个二叉树实现可以进行加减乘除四则运算,并且支持多个数字的计算。
接下来是如何将这个二叉树结构保存到数据库中。可以创建一个节点表和一个树表,节点表包含节点id、节点值、左子节点id、右子节点id,树表包含树id、根节点id。以下是一个简单的MySQL数据库表结构:
```
CREATE TABLE node (
id INT PRIMARY KEY,
value INT,
left_id INT,
right_id INT
);
CREATE TABLE tree (
id INT PRIMARY KEY,
root_id INT
);
```
节点和树表可以通过外键关联,从而保存整个二叉树结构。当需要恢复二叉树时,可以通过递归查询节点表和树表,构建节点和子节点,最终构建整个二叉树。
以上是我对你问题的回答,希望能对你有所帮助。
阅读全文