├── .classpath
├── .gitignore
├── .project
├── .settings
└── org.eclipse.jdt.core.prefs
├── README.md
└── src
└── cn
└── edu
└── tju
└── rico
├── BinarySearchTree
├── BinarySearchTree.java
└── TreeNode.java
├── backtrack
└── EightQueen.java
├── heap
└── MinHeap.java
├── list
├── LinkedList.java
└── Node.java
├── queue
├── LinkedQueue.java
├── Node.java
├── OptimizationStackQueue.java
├── SeqQueue.java
└── StackQueue.java
├── sort
├── BinaryInsertSort.java
├── BubbleSort.java
├── HeapSort.java
├── MergeSort.java
├── QuickSort.java
├── QuickSort_PartitionOnly.java
├── RadixSort.java
├── ShellSort.java
├── StraightInsertionSort.java
└── StraightSelectSort.java
├── stack
├── LinkedListStack.java
├── LinkedStack.java
├── Node.java
└── SeqStack.java
├── test
├── BinarySearchTreeTest.java
├── BinaryTreeTest.java
├── LinkedListTest.java
├── LinkedQueueTest.java
├── LinkedStackTest.java
├── MinHeapTest.java
├── OptimizationStackQueueTest.java
├── SeqQueueTest.java
├── SortTest.java
└── StackQueueTest.java
└── tree
├── BinaryTree.java
└── Node.java
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | DataStructure
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.jdt.core.javanature
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 | org.eclipse.jdt.core.compiler.compliance=1.7
6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 | org.eclipse.jdt.core.compiler.source=1.7
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # 常用数据结构及其算法的Java实现
3 |
4 | 本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构,持续更新中...
5 |
6 | 目前,该项目具体包括如下内容:
7 |
8 | - 单向链表的数据结构及其相关算法:单向链表结构包含两个要素,即头结点head和链表大小size,具体操作包括:
9 |
10 | - 链表的增删
11 | - 链表是否为空
12 | - 链表的大小
13 | - 链表的打印输出
14 | - 删除链表重复节点
15 | - 链表倒数第K个元素
16 | - 链表的反转
17 | - 链表的倒序输出
18 | - 链表的中间节点
19 | - 链表是否有环
20 | - 链表节点的删除(不知道头结点的情况下)
21 | - 链表是否相交
22 | - 链表的交点
23 |
24 | ---------------
25 |
26 | - 栈(顺序栈/链式栈)的数据结构及其相关算法:栈结构包含两个要素,即栈顶指针top和栈大小size,具体操作包括:
27 |
28 | - 压栈操作push
29 | - 弹栈操作pop
30 | - 查看栈顶元素peek
31 | - 查看栈的大小
32 | - 查看栈是否为空
33 | - 查看栈的最小元素(O(1)时间复杂度)
34 |
35 | ---------------
36 |
37 | - 队列(基于数组的实现、基于链表的实现和基于栈的实现)的数据结构及其相关算法:队列结构包含三个要素,即队头指针head、队尾指针rear和队列大小size,具体操作包括:
38 |
39 | - 入队操作put
40 | - 出队操作pop
41 | - 查看队头元素peek
42 | - 查看队列的大小
43 | - 查看队列是否为空
44 |
45 | ----------
46 |
47 | - 二叉树(链式实现)的数据结构及其相关算法:二叉树结构包含一个要素,即二叉树的根结点,具体操作包括:
48 |
49 | - 以广义表形式的字符串构建二叉树:'()'前表示根结点,括号中左右子树用逗号隔开,逗号不能省略
50 | - 二叉树的层次/广序遍历算法(辅助队列)
51 | - 二叉树的前序、中序、后序遍历的递归/非递归算法(辅助栈):对每个节点而言,三种遍历方式都需要遍历该结点三次,三者唯一区别在于该结点的访问时机;特别注意后序遍历的迭代算法的实现
52 | - 根据二叉树的前序、中序或中序、后序遍历结果构建二叉树
53 | - 根据二叉树的根结点复制一颗二叉树
54 | - 二叉树的高度
55 | - 二叉树的结点总数
56 | - 二叉树的根结点、孩子节点的获取
57 | - 以广义表的形式打印二叉树
58 | - 判断两颗二叉树是否相等
59 |
60 | ----------
61 |
62 | - 堆(数组实现)的数据结构及其相关算法:堆结构实际上是一个完全二叉树,能方便地从中取出最小/大元素,其包含两个要素,即存储数组heap[]和堆大小size。本实现为最小堆,具体操作包括:
63 |
64 | - 堆的构建(创建一个空堆,基于数组的构建)
65 | - 堆的插入(插入到堆尾,再自下向上调整为最小堆)
66 | - 堆的删除(删除堆顶元素并用堆尾元素添补,再自上向下调整为最小堆)
67 | - 堆排序(时间复杂度:O(nlgn),空间复杂度O(1),不稳定):升序排序一般用最大堆,不断地将堆顶元素放到数组最后并缩小堆的范围
68 | - 堆的打印(树的前序遍历的应用)
69 |
70 | ----------
71 |
72 | - 二叉搜索树的数据结构及其相关算法:二叉搜索树也叫二叉排序树,其中序遍历及时序列的升序排序。此外,二叉搜索树能方便地从中搜索出指定元素,具体操作包括:
73 |
74 | - 二叉搜索树的构建(基于数组的构建(插入构建))
75 | - 二叉搜索树的插入(插入到合适位置,插入后仍然是一颗二叉搜索树),递归算法
76 | - 二叉搜索树的删除(分为删除节点为叶子节点、左子树为空、右子树为空、左右子树均不为空等四个方面,递归算法,删除后仍然是一颗二叉搜索树)
77 | - 二叉搜索树的搜索,O(lgn),递归算法
78 | - 二叉搜索树的遍历,特别是中序遍历(遍历结果为升序序列),递归算法
79 | - 二叉搜索树的打印(树的前序遍历的应用),递归算法
80 |
81 | ----------
82 |
83 | - 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序在内的八种排序算法,同时对各种算法的基本特征做出了详细分析:
84 |
85 | - 算法基本思想
86 | - 算法的种类:插入排序(直接插入排序,希尔排序,折半插入排序),选择排序(直接选择排序,堆排序(升序/最大堆)),交换排序(冒泡排序,快速排序),归并排序,分配排序(基数排序)
87 | - 算法的时间复杂度
88 | - 算法的空间复杂度
89 | - 算法的稳定性
90 | - 内部排序/外部排序
91 |
92 | ----------
93 |
94 | 注意:
95 |
96 | - 堆排序的源码在堆的相关实现中给出
97 | - 源码中每个包对应一个数据结构及其算法的实现。若项目中的源代码存在谬误,请不吝指出,在此拜谢!
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/BinarySearchTree/BinarySearchTree.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/BinarySearchTree/BinarySearchTree.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/BinarySearchTree/TreeNode.java:
--------------------------------------------------------------------------------
1 |
2 | package cn.edu.tju.rico.BinarySearchTree;
3 |
4 | public class TreeNode {
5 |
6 | public int data;
7 | public TreeNode left;
8 | public TreeNode right;
9 |
10 | public TreeNode(int data){
11 | this.data = data;
12 | }
13 |
14 | @Override
15 | public String toString() {
16 | return "TreeNode [data=" + data + "]";
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/backtrack/EightQueen.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/backtrack/EightQueen.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/heap/MinHeap.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/heap/MinHeap.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/list/LinkedList.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/list/LinkedList.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/list/Node.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/list/Node.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/queue/LinkedQueue.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/LinkedQueue.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/queue/Node.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/Node.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/queue/OptimizationStackQueue.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/OptimizationStackQueue.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/queue/SeqQueue.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/SeqQueue.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/queue/StackQueue.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/queue/StackQueue.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/BinaryInsertSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/BinaryInsertSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/BubbleSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/BubbleSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/HeapSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/HeapSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/MergeSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/MergeSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/QuickSort.java:
--------------------------------------------------------------------------------
1 | package cn.edu.tju.rico.sort;
2 |
3 | import java.util.Arrays;
4 |
5 | /**
6 | * Title: 交换排序中的快速排序,目前应用最为广泛的排序算法,是一个递归算法
7 | * Description:快速排序包括两个过程:划分 和 快排
8 | * "划分"是指将原序列按基准元素划分两个子序列
9 | * "快排"是指分别对子序列进行快排
10 | *
11 | * 就平均计算时间而言,快速排序是所有内部排序方法中最好的一个
12 | *
13 | * 对大规模数据排序时,快排是快的;对小规模数据排序时,快排是慢的,甚至慢于简单选择排序等简单排序方法
14 | *
15 | * 快速排序依赖于原始序列,因此其时间复杂度从O(nlgn)到O(n^2)不等
16 | * 时间复杂度:最好情形O(nlgn),平均情形O(nlgn),最差情形O(n^2)
17 | *
18 | * 递归所消耗的栈空间
19 | * 空间复杂度:O(lgn)
20 | *
21 | * 可选任一元素作为基准元素
22 | * 稳 定 性:不稳定
23 | *
24 | *
25 | * 内部排序(在排序过程中数据元素完全在内存)
26 | *
27 | * @author rico
28 | * @created 2017年5月20日 上午10:40:00
29 | */
30 | public class QuickSort {
31 |
32 | /**
33 | * @description 快排算法(递归算法):在递去过程中就把问题解决了
34 | * @author rico
35 | * @created 2017年5月20日 下午5:12:06
36 | * @param target
37 | * @param left
38 | * @param right
39 | * @return
40 | */
41 | public static int[] quickSort(int[] target, int left, int right) {
42 | if(right > left){ // 递归终止条件
43 | int base_index = partition(target,left, right); // 原序列划分后基准元素的位置
44 | quickSort(target, left, base_index-1); // 对第一个子序列快速排序,不包含基准元素!
45 | quickSort(target, base_index+1, right); // 对第二个子序列快速排序,不包含基准元素!
46 | }
47 | return target;
48 | }
49 |
50 |
51 | /**
52 | * @description 序列划分,以第一个元素为基准元素
53 | * @author rico
54 | * @created 2017年5月20日 下午5:10:54
55 | * @param target 序列
56 | * @param left 序列左端
57 | * @param right 序列右端
58 | * @return
59 | */
60 | public static int partition(int[] target, int left, int right){
61 |
62 | int base = target[left]; // 基准元素的值
63 | int base_index = left; // 基准元素最终应该在的位置
64 |
65 | for (int i = left+1; i <= right; i++) { // 从基准元素的下一个元素开始
66 | if(target[i] < base){ // 若其小于基准元素
67 | base_index++; // 若其小于基准元素,则基准元素最终位置后移;否则不用移动
68 | if(base_index != i){ // 相等情况意味着i之前的元素都小于base,只需要换一次即可,不需要次次都换
69 | int temp = target[base_index];
70 | target[base_index] = target[i];
71 | target[i] = temp;
72 | }
73 | }
74 | }
75 |
76 | // 将基准元素就位
77 | target[left] = target[base_index];
78 | target[base_index] = base;
79 |
80 | System.out.println(Arrays.toString(target));
81 |
82 | return base_index; //返回划分后基准元素的位置
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/QuickSort_PartitionOnly.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/QuickSort_PartitionOnly.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/RadixSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/RadixSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/ShellSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/ShellSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/StraightInsertionSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/StraightInsertionSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/sort/StraightSelectSort.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/sort/StraightSelectSort.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/stack/LinkedListStack.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/stack/LinkedListStack.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/stack/LinkedStack.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/stack/LinkedStack.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/stack/Node.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/stack/Node.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/stack/SeqStack.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/stack/SeqStack.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/BinarySearchTreeTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/BinarySearchTreeTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/BinaryTreeTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/BinaryTreeTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/LinkedListTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/LinkedListTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/LinkedQueueTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.tju.rico.test;
2 |
3 | import cn.edu.tju.rico.queue.LinkedQueue;
4 |
5 | public class LinkedQueueTest {
6 | public static void main(String[] args) {
7 | LinkedQueue queue = new LinkedQueue();
8 | queue.put(1);
9 | queue.put(2);
10 | queue.put(4);
11 | queue.put(3);
12 | queue.put(0);
13 | System.out.println(queue);
14 | System.out.println("\n ------------------- \n");
15 |
16 |
17 | queue.pop();
18 | System.out.println(queue);
19 | System.out.println("\n ------------------- \n");
20 |
21 |
22 | System.out.println(queue.peek());
23 | queue.put(121);
24 | System.out.println(queue);
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/LinkedStackTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/LinkedStackTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/MinHeapTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/MinHeapTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/OptimizationStackQueueTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.tju.rico.test;
2 |
3 | import cn.edu.tju.rico.queue.OptimizationStackQueue;
4 |
5 | public class OptimizationStackQueueTest {
6 | public static void main(String[] args) {
7 | OptimizationStackQueue queue = new OptimizationStackQueue();
8 | queue.put(1);
9 | queue.put(3);
10 | queue.put(5);
11 | queue.put(2);
12 | queue.put(8);
13 | queue.put(6);
14 | System.out.println(queue);
15 | System.out.println("\n------------------\n");
16 |
17 | queue.pop();
18 | System.out.println(queue);
19 | System.out.println("\n------------------\n");
20 |
21 | queue.put(4);
22 | queue.put(5);
23 | System.out.println(queue);
24 | System.out.println("\n------------------\n");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/SeqQueueTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.tju.rico.test;
2 |
3 | import cn.edu.tju.rico.queue.SeqQueue;
4 |
5 | public class SeqQueueTest {
6 |
7 | public static void main(String[] args) {
8 |
9 | SeqQueue queue = new SeqQueue(5);
10 | queue.put(1);
11 | queue.put(2);
12 | queue.put(3);
13 | queue.put(4);
14 | queue.put(3);
15 | queue.put(4);
16 | System.out.println(queue);
17 | System.out.println("\n----------------\n");
18 |
19 | queue.pop();
20 | System.out.println(queue);
21 | System.out.println("\n----------------\n");
22 |
23 | System.out.println(queue.peek());
24 | System.out.println(queue);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/SortTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/test/SortTest.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/test/StackQueueTest.java:
--------------------------------------------------------------------------------
1 | package cn.edu.tju.rico.test;
2 |
3 | import cn.edu.tju.rico.queue.StackQueue;
4 |
5 | public class StackQueueTest {
6 | public static void main(String[] args) {
7 | StackQueue queue = new StackQueue();
8 | queue.put(1);
9 | queue.put(3);
10 | queue.put(5);
11 | queue.put(2);
12 | queue.put(8);
13 | queue.put(6);
14 | System.out.println(queue);
15 | System.out.println("\n------------------\n");
16 |
17 | queue.pop();
18 | System.out.println(queue);
19 | System.out.println("\n------------------\n");
20 |
21 | queue.put(4);
22 | System.out.println(queue);
23 | System.out.println("\n------------------\n");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/tree/BinaryTree.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/tree/BinaryTree.java
--------------------------------------------------------------------------------
/src/cn/edu/tju/rico/tree/Node.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubofrico/DataStructure/9f6592b157fb6fa0983e0b1ed64b33b2d33711e5/src/cn/edu/tju/rico/tree/Node.java
--------------------------------------------------------------------------------