赞
踩
思路:
将某个数作为根节点,比根大的放在根节点的右子叶,比根大的放在根节点的右子叶,每一个叶节点作为新的根节点进行递归,就会得到按照数大小排列的树
class TreeNode {
int value;
TreeNode left;
TreeNode right;
public TreeNode(int value) {
this.value = value;
}
}
class Tree {
private TreeNode root;
private int size;
}
public void add(int val) { TreeNode newNode = new TreeNode(val); if (root == null) { root = newNode; } else { insert(); } }
private void insert(TreeNode childRoot, TreeNode newNode) { if (newNode.value < childRoot.value) { if (childRoot.left == null) { childRoot.left = newNode; } else { insert(childRoot.left, newNode); } } else { if (childRoot.right == null) { childRoot.right = newNode; } else { insert(childRoot.right, newNode); } } }
public void add(int val) {
TreeNode newNode = new TreeNode(val);
if (root == null) {
root = newNode;
} else {
insert(root, newNode);
}
private void getTree(TreeNode childRoot) {
if (childRoot == null) {
return;
}
if (childRoot.left != null) {
view(childRoot.left);
}
System.out.println(childRoot.value);
if (childRoot.right != null) {
view(childRoot.right);
}
}
全部代码如下:
class TreeNode { int value; TreeNode left; TreeNode right; public TreeNode(int value) { this.value = value; } } class Tree { private TreeNode root; private int size; private void insert(TreeNode childRoot, TreeNode newNode) { if (newNode.value < childRoot.value) { if (childRoot.left == null) { childRoot.left = newNode; } else { insert(childRoot.left, newNode); } } else { if (childRoot.right == null) { childRoot.right = newNode; } else { insert(childRoot.right, newNode); } } } public void add(int val) { TreeNode newNode = new TreeNode(val); if (root == null) { root = newNode; } else { insert(root, newNode); } size++; } public int getSize() { return size; } private void getTree(TreeNode childRoot) { if (childRoot == null) { return; } if (childRoot.left != null) { view(childRoot.left); } System.out.println(childRoot.value); if (childRoot.right != null) { view(childRoot.right); } } } public void getNode() { getTree(root); } }
class TreeTest { public static void main(String[] args) { Tree tree = new Tree(); tree.add(7); tree.add(9); tree.add(9); tree.add(13); tree.add(57); tree.add(67); tree.add(89); tree.add(89); tree.add(12); tree.add(5); tree.add(5); tree.add(4); tree.add(4); tree.add(57); System.out.println("tree.size() = " + tree.getSize()); tree.getNode(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。