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