简单测试用例 - HolmesJJ/Data-Structures-and-Algorithms GitHub Wiki

Sort

int[] arr0 = new int[]{};
int[] arr1 = new int[]{43};
int[] arr2 = new int[]{43, 56};
int[] arr3 = new int[]{56, 43};
int[] arr4 = new int[]{43, 56, 98};
int[] arr5 = new int[]{43, 56, 98, 31, 33, 43, 13, 65, 13, 1, 87, 65};
int[] arr6 = new int[]{43, 56, 98, 31, 33, 43, 13, 65, 13, 1, 87, 65, 12};
int[] arr7 = new int[]{2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr8 = new int[]{2, 3, 4, 5, 6, 7, 8, 9, 10, 1};
int[] arr9 = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1};
int[] arr10 = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2};
int[] arr11 = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2};
int[] arr12 = new int[]{9, 8, 7, 6, 5, 4, 3, 2, 1, 10};
int[] arr13 = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10};
int[] arr14 = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10, 9};

Binary Tree


Integer[] preOrderList1 = new Integer[]{1,2,4,7,3,5,8,9,6};
Integer[] inOrderList1 = new Integer[]{4,7,2,1,8,5,9,3,6};

String[] preOrderList2 = {"A","B","D","G","C","E","F","H"};
String[] inOrderList2 = {"D","G","B","A","E","C","H","F"};
String[] postOrderList2 = {"G","D","B","E","H","F","C","A"};

String[] preOrderList3 = {"D","B","A","C","G","E","F","H"};
String[] inOrderList3 = {"A","B","C","D","E","F","G","H"};

// 先序遍历和中序遍历
BinarySearchTree<Integer> tree1 = new BinarySearchTree<>(preOrderList1, inOrderList1, true);
System.out.println("先序遍历: " + tree1.preOrder());
System.out.println("树的结构如下:");
tree1.print();

BinarySearchTree<String> tree2 = new BinarySearchTree<>(preOrderList2, inOrderList2,true);
System.out.println("中序遍历: " + tree2.inOrder());
System.out.println("树的结构如下:");
tree2.print();

BinarySearchTree<String> tree4 = new BinarySearchTree<>(preOrderList3, inOrderList3, true);
System.out.println("先序遍历: " + tree4.preOrder());
System.out.println("中序遍历: " + tree4.inOrder());
System.out.println("树的结构如下:");
tree4.print();

// 中序遍历和后序遍历
BinarySearchTree<String> tree3 = new BinarySearchTree<>(postOrderList2, inOrderList2, false);
System.out.println("后序遍历: " + tree3.postOrder());
System.out.println("树的结构如下:");
tree3.print();

tree1.insert(10);
tree1.insert(11);
tree2.insert("I");
tree2.insert("N");

System.out.println("非递归先序遍历: "+tree1.preOrder2());
System.out.println("先序遍历:"+tree1.preOrder());
System.out.println("树的结构如下:");
tree1.print();
System.out.println("非递归中序遍历: "+tree2.inOrder2());
System.out.println("中序遍历:"+tree2.inOrder());
System.out.println("树的结构如下:");
tree2.print();

System.out.println("查找最大结点(根据搜索二叉树): "+ tree3.findMax());
System.out.println("查找最小结点(根据搜索二叉树): "+ tree3.findMin());
BinaryNode<String> node1 = tree4.getRoot().getLeft().getRight();
BinaryNode<String> node2 = tree4.getRoot().getRight().getLeft().getRight();
System.out.println(node1.getData() + "的前驱是" + tree4.findPredecessor(node1).getData());
System.out.println(node1.getData() + "的后继是" + tree4.findSuccessor(node1).getData());
System.out.println(node2.getData() + "的前驱是" + tree4.findPredecessor(node2).getData());
System.out.println(node2.getData() + "的后继是" + tree4.findSuccessor(node2).getData());

Trie Tree

TrieTree tireTree = new TrieTree();
TrieNode root = new TrieNode();
String[] strings = {"java", "php", "mysql", "jvm", "java"};
for (String ss : strings) {
    tireTree.insert(root, ss);
}
System.out.println(tireTree.find(root, "java"));
System.out.println(tireTree.find(root, "jvm"));
System.out.println(tireTree.find(root, "jav"));
⚠️ **GitHub.com Fallback** ⚠️