怎样用Java来体现二叉树(顺便加上注释)

Python024

怎样用Java来体现二叉树(顺便加上注释),第1张

二叉树,和数据库的B树操作流程是一样的,例如:有如下字段

F,C,B,H,K,I;

如果要形成二叉树的话,则,首先取第一个数据作为根节点,所以,现在是 F ,如果字段比根节点小,则保存在左子树,如果比根节点大或者等于根节点则保存在右子树,最后按左---根-----右输出所以数据。

所以,实现的关键就是在于保存的数据上是否存在大小比较功能,而String类中compareTo()有这个能力,节点类要保存两类数据,左节点,右节点

class Node

{

private String data

private Node left

private Node right

public Node (String data){

this.data = data

}

public void setLeft(Node left) {

this.left = left

}

public void setRight(Node right){

this.right = right

}

public String getDate() {

return this.data

}

public Node getLeft(){

return this.left

}

public Node getRight(){

return this.right

}

public void addNode(Node newNode){

if(this.data.compareTo(newNode.data)>=0) {

if(this.left == null){

this.left = newNode

}else {

this.left.addNode(newNode)

}

}else {

if(this.right == null) {

this.right = newNode

} else {

this.right.addNode(newNode)

}

}

}

public void printNode(){

if(this.left!= null){

this.left.printNode()

}

System.out.println(this.data)

if(this.right != null){

this.right.printNode()

}

}

}

class BinaryTree

{

private Node root = null

public void add(String data) {

Node newNode = new Node(data)

if(this.root == null) {

this.root = newNode

}else{

this.root.addNode(newNode)

}

}

public void print() {

this.root.printNode()

}

}

public class Hello

{

public static void main (String args[]) {

BinaryTree link = new BinaryTree()

link.add("F")

link.add("C")

link.add("B")

link.add("H")

link.add("K")

link.add("I")

link.print()

}

}

你一看就英文就知道什么意思了,应该可以理解了

这个二叉树捉摸不透就别琢磨了,开放中一般用不上

}

因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,

B树(B-tree)是一种树状数据结构能够用来存储排序后的数据。这种数据结构能够让查找数据、循序存取、插入数据及删除的动作,都在对数时间内完成。