/
githubmirror
/
hello-algo
Обзор
Документация
Войти
/
githubmirror
/
hello-algo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ja/codes/java/utils/PrintUtil.java
116 строк
3 KB
Yudong Jin
Re-translate the Japanese version (#1871)
30 мар 2026, 02:30
Не верифицирован
30 мар 2026, 02:30
d7b2277
Код
Авторство
О чём код?
/** * File: PrintUtil.java * Created Time: 2022-11-25 * Author: krahets (krahets@163.com) */ 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 { /* 行列を出力する(Array) */ public static <T> void printMatrix(T[][] matrix) { System.out.println("["); for (T[] row : matrix) { System.out.println(" " + row + ","); } System.out.println("]"); } /* 行列を出力する(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("]"); } /* 連結リストを出力 */ 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)); } /* 二分木を出力 */ public static void printTree(TreeNode root) { printTree(root, null, false); } /** * 二分木を出力 * This tree printer is borrowed from TECHIE DELIGHT * https://www.techiedelight.com/c-program-print-binary-tree/ */ public static void printTree(TreeNode root, Trunk prev, boolean isRight) { 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 (isRight) { 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); } public static void showTrunks(Trunk p) { if (p == null) { return; } showTrunks(p.prev); System.out.print(p.str); } /* ハッシュテーブルを出力 */ 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()); } } /* ヒープ(優先度付きキュー)を出力する */ 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); } }