Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package basic.dataStructure.binaryTree;

import java.util.List;

public class BinarySearchTree<T extends Comparable> {

BinaryTreeNode<T> root;

public BinarySearchTree(BinaryTreeNode<T> root) {
this.root = root;
}

public BinaryTreeNode<T> getRoot() {
return root;
}

public T findMin() {
return findMin(root);
}

private T findMin(BinaryTreeNode<T> root){
List<T> list = BinaryTreeUtil.preOrderVisit(root);
T min = list.get(0);
for (T t : list) {
min = min.compareTo(t) == -1 ? min : t;
}
return min;
}

public T findMax() {
return findMax(root);
}

private T findMax(BinaryTreeNode<T> root){
List<T> list = BinaryTreeUtil.preOrderVisit(root);
T max = list.get(0);
for (T t : list) {
max = max.compareTo(t) == 1 ? max : t;
}
return max;
}

public int height() {
return calHeight(root);
}

private int calHeight(BinaryTreeNode<T> root) {
if (root == null) return 0;

int left = calHeight(root.left);
int right = calHeight(root.right);

return (left > right ? left : right) + 1;

}

public int size() {
List<T> list = BinaryTreeUtil.preOrderVisit(root);
return list.size();
}

public void remove(T e) {
remove(root, (Integer) e);
}

private void remove(BinaryTreeNode<T> node, int value) {
if (node == null) throw new RuntimeException("no such node has value = " + value);

T data = node.getData();
if (data.compareTo(value) == 0) {
if (node.left == null && node.right == null) {
node = null;
} else if (node.left != null && node.right == null) {
node.data = node.left.data;
node.left = null;
} else if (node.left == null && node.right != null) {
node.data = node.right.data;
node.right = null;
} else {
T replace = findMin(node.right);
node.data = replace;
remove(node.right, (Integer)replace);
}
} else if (data.compareTo(value) == -1) {
remove(node.right, value);
} else {
remove(node.left, value);
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ public class BinaryTreeNode<T> {
////
//// return dataStr.toString();
//// }
private T data;
private BinaryTreeNode<T> left;
private BinaryTreeNode<T> right;
public T data;
public BinaryTreeNode<T> left;
public BinaryTreeNode<T> right;

public BinaryTreeNode(T data){
this.data=data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,56 @@

import java.io.File;

/**
* 给定一个目录,递归的列出下面所有的子目录和文件
*
*/
public class FileList {
public void list(File f) {

public void list(File f, int level) {
if(!f.exists()){
throw new RuntimeException("file " + f.getAbsolutePath() + " not existed");
}

StringBuilder head = new StringBuilder();
head.append("|--").append(f.getName());
System.out.println(head.toString());

File[] files = f.listFiles();
for(File file : files){
if(file.isDirectory()){
printDirectory(file, level + 1);
}else{
printFile(file, level);
}
}

}


private void printDirectory(File f, int level){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < level; i++){
builder.append(" ");
}
builder.append("|--").append(f.getName());
System.out.println(builder.toString());

File[] files = f.listFiles();
for(File file : files){
if(file.isDirectory()){
printDirectory(file, level + 1);
}else{
printFile(file, level);
}
}
}

private void printFile(File f, int level){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < level + 1; i++){
builder.append(" ");
}
builder.append("|->").append(f.getName());
System.out.println(builder.toString());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public static float getFloat(float val1, float val2, String oper) {
if (val2 == 0) throw new RuntimeException("cannot divide 0, calculation canceled");
res = val1 / val2;
}

// System.out.println("计算结果: " + val1 + oper + val2 + "=" + res);
return res;
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading