forked from krahets/hello-algo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
32 changed files
with
285 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ docs/overrides/ | |
# build | ||
build/ | ||
site/ | ||
utils/ | ||
./utils/ | ||
|
||
# test script | ||
test.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
// Created Time: 2022-12-16 | ||
// Author: mingXta ([email protected]) | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_array_and_linkedlist; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
using System.IO; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_backtracking; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_backtracking; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_backtracking; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_computational_complexity; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: zjkung1123 ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_graph; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: zjkung1123 ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_graph; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_graph; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: hpstory ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_graph; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_hashing; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: zjkung1123 ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_heap; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: zjkung1123 ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_heap; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_searching; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_searching; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_stack_and_queue; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_stack_and_queue; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_tree; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_tree; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_tree; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_tree; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
using hello_algo.include; | ||
using hello_algo.utils; | ||
using NUnit.Framework; | ||
|
||
namespace hello_algo.chapter_tree; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
// Created Time: 2022-12-16 | ||
// Author: mingXta ([email protected]) | ||
|
||
namespace hello_algo.include; | ||
namespace hello_algo.utils; | ||
|
||
/* Definition for a singly-linked list node */ | ||
public class ListNode { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]), krahets ([email protected]) | ||
*/ | ||
|
||
namespace hello_algo.include; | ||
namespace hello_algo.utils; | ||
|
||
public class Trunk { | ||
public Trunk? prev; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: haptear ([email protected]) | ||
*/ | ||
|
||
namespace hello_algo.include; | ||
namespace hello_algo.utils; | ||
|
||
/* 二叉树节点类 */ | ||
public class TreeNode { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
* Author: zjkung1123 ([email protected]), krahets ([email protected]) | ||
*/ | ||
|
||
namespace hello_algo.include; | ||
namespace hello_algo.utils; | ||
|
||
/* 顶点类 */ | ||
public class Vertex { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/** | ||
* File: ListNode.java | ||
* Created Time: 2022-11-25 | ||
* Author: Krahets ([email protected]) | ||
*/ | ||
|
||
package utils; | ||
|
||
/* Definition for a singly-linked list node */ | ||
public class ListNode { | ||
public int val; | ||
public ListNode next; | ||
|
||
public ListNode(int x) { | ||
val = x; | ||
} | ||
|
||
/* Generate a linked list with an array */ | ||
public static ListNode arrToLinkedList(int[] arr) { | ||
ListNode dum = new ListNode(0); | ||
ListNode head = dum; | ||
for (int val : arr) { | ||
head.next = new ListNode(val); | ||
head = head.next; | ||
} | ||
return dum.next; | ||
} | ||
|
||
/* Get a list node with specific value from a linked list */ | ||
public static ListNode getListNode(ListNode head, int val) { | ||
while (head != null && head.val != val) { | ||
head = head.next; | ||
} | ||
return head; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
/** | ||
* File: PrintUtil.java | ||
* Created Time: 2022-11-25 | ||
* Author: Krahets ([email protected]) | ||
*/ | ||
|
||
package utils; | ||
|
||
import java.util.*; | ||
|
||
class Trunk { | ||
Trunk prev; | ||
String str; | ||
|
||
Trunk(Trunk prev, String str) { | ||
this.prev = prev; | ||
this.str = str; | ||
} | ||
}; | ||
|
||
public class PrintUtil { | ||
|
||
/* Print a matrix (Array) */ | ||
public static <T> void printMatrix(T[][] matrix) { | ||
System.out.println("["); | ||
for (T[] row : matrix) { | ||
System.out.println(" " + row + ","); | ||
} | ||
System.out.println("]"); | ||
} | ||
|
||
/* Print a matrix (List) */ | ||
public static <T> void printMatrix(List<List<T>> matrix) { | ||
System.out.println("["); | ||
for (List<T> row : matrix) { | ||
System.out.println(" " + row + ","); | ||
} | ||
System.out.println("]"); | ||
} | ||
|
||
/* Print a linked list */ | ||
public static void printLinkedList(ListNode head) { | ||
List<String> list = new ArrayList<>(); | ||
while (head != null) { | ||
list.add(String.valueOf(head.val)); | ||
head = head.next; | ||
} | ||
System.out.println(String.join(" -> ", list)); | ||
} | ||
|
||
/** | ||
* The interface of the tree printer | ||
* This tree printer is borrowed from TECHIE DELIGHT | ||
* https://www.techiedelight.com/c-program-print-binary-tree/ | ||
*/ | ||
public static void printTree(TreeNode root) { | ||
printTree(root, null, false); | ||
} | ||
|
||
/* Print a binary tree */ | ||
public static void printTree(TreeNode root, Trunk prev, boolean isLeft) { | ||
if (root == null) { | ||
return; | ||
} | ||
|
||
String prev_str = " "; | ||
Trunk trunk = new Trunk(prev, prev_str); | ||
|
||
printTree(root.right, trunk, true); | ||
|
||
if (prev == null) { | ||
trunk.str = "———"; | ||
} else if (isLeft) { | ||
trunk.str = "/———"; | ||
prev_str = " |"; | ||
} else { | ||
trunk.str = "\\———"; | ||
prev.str = prev_str; | ||
} | ||
|
||
showTrunks(trunk); | ||
System.out.println(" " + root.val); | ||
|
||
if (prev != null) { | ||
prev.str = prev_str; | ||
} | ||
trunk.str = " |"; | ||
|
||
printTree(root.left, trunk, false); | ||
} | ||
|
||
/* Helper function to print branches of the binary tree */ | ||
public static void showTrunks(Trunk p) { | ||
if (p == null) { | ||
return; | ||
} | ||
|
||
showTrunks(p.prev); | ||
System.out.print(p.str); | ||
} | ||
|
||
/* Print a hash map */ | ||
public static <K, V> void printHashMap(Map<K, V> map) { | ||
for (Map.Entry<K, V> kv : map.entrySet()) { | ||
System.out.println(kv.getKey() + " -> " + kv.getValue()); | ||
} | ||
} | ||
|
||
/* Print a heap (PriorityQueue) */ | ||
public static void printHeap(Queue<Integer> queue) { | ||
List<Integer> list = new ArrayList<>(queue); | ||
System.out.print("堆的数组表示:"); | ||
System.out.println(list); | ||
System.out.println("堆的树状表示:"); | ||
TreeNode root = TreeNode.listToTree(list); | ||
printTree(root); | ||
} | ||
} |
Oops, something went wrong.