From 1b024183c36d164707be21e0f672a86e51454b55 Mon Sep 17 00:00:00 2001 From: Jidong Xiao Date: Mon, 4 Dec 2023 16:07:43 -0500 Subject: [PATCH] adding trie diagram --- lectures/27_hybrid_data_structures/trie.png | Bin 0 -> 24549 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lectures/27_hybrid_data_structures/trie.png diff --git a/lectures/27_hybrid_data_structures/trie.png b/lectures/27_hybrid_data_structures/trie.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe1438e428126576d05f781ccfee773ec5b433c GIT binary patch literal 24549 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