From fc2c614e815f337975ef4df01b05d7ac47d6e2e7 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Sun, 24 Mar 2024 07:14:26 -0600 Subject: [PATCH] Add notes on trees. --- .../plugins/obsidian-to-anki-plugin/data.json | 106 +-- notes/_journal/2024-03-24.md | 11 + notes/_journal/{ => 2024-03}/2024-03-22.md | 6 +- notes/_journal/2024-03/2024-03-23.md | 18 + .../combinatorics/multiplicative-principle.md | 2 +- notes/logic/equiv-trans.md | 2 +- notes/set/graphs.md | 6 +- notes/set/images/cyclic-undirected.png | Bin 0 -> 10770 bytes notes/set/images/forest.png | Bin 0 -> 9822 bytes notes/set/images/free-tree.png | Bin 0 -> 10356 bytes notes/set/images/rooted-tree.png | Bin 0 -> 22357 bytes notes/set/trees.md | 601 ++++++++++++++++++ 12 files changed, 696 insertions(+), 56 deletions(-) create mode 100644 notes/_journal/2024-03-24.md rename notes/_journal/{ => 2024-03}/2024-03-22.md (65%) create mode 100644 notes/_journal/2024-03/2024-03-23.md create mode 100644 notes/set/images/cyclic-undirected.png create mode 100644 notes/set/images/forest.png create mode 100644 notes/set/images/free-tree.png create mode 100644 notes/set/images/rooted-tree.png create mode 100644 notes/set/trees.md diff --git a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json index 1ae23fb..fb29adf 100644 --- a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json +++ b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json @@ -102,17 +102,21 @@ "infinity.png", "nan.png", "directed-graph-example.png", - "undirected-graph-example.png" + "undirected-graph-example.png", + "free-tree.png", + "forest.png", + "cyclic-undirected.png", + "rooted-tree.png" ], "File Hashes": { - "algorithms/index.md": "f63290ca8d7aad1840797ec699188e9e", - "algorithms/sorting/index.md": "2d5a18a3079d96fa9e3d4289181a8b6c", - "algorithms/sorting/insertion-sort.md": "bdac9a5836611d6136b65367bed521e7", + "algorithms/index.md": "3ac071354e55242919cc574eb43de6f8", + "algorithms/sorting/index.md": "4a66e28bce754de5df31ec2f4aed7e93", + "algorithms/sorting/insertion-sort.md": "b352f91800ab87e60c58dbfaf3ae959e", "bash/index.md": "22083ea1ee9505cc96b02f82f63ba2c9", - "bash/prompts.md": "61cb877e68da040a15b85af76b1f68ba", + "bash/prompts.md": "cc51c210fa819338d4e95658955173df", "bash/quoting.md": "b1d8869a91001f8b22f0cdc54d806f61", - "bash/robustness.md": "6f3e4ec7c321b2f3f94a01c18f675d1e", - "bash/shebang.md": "9006547710f9a079a3666169fbeda7aa", + "bash/robustness.md": "a3d924e0c58bbf0a2f2b0482f5cf94b6", + "bash/shebang.md": "577e32f9f508625fd9b4002a7a26b211", "c/escape-sequences.md": "7b4bbf159908320249158acfe47a9074", "c/index.md": "a021c92f19831bdd2bca4cbf813882fe", "gawk/index.md": "e4da41ba6a2c2602d9f15f2930608e3c", @@ -123,14 +127,14 @@ "journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180", "journal/2024-02-03.md": "c6d411f0e2e964270399dd3a99f48382", "logic/index.md": "46cdc7a552900e99a7d2d0140971118c", - "logic/propositional.md": "a72983987cd89df9a451973a4d45e82d", + "logic/propositional.md": "1ac07079aff07a7c2cb09daacefbb960", "lua/index.md": "fd3d0b66765f0e9df233e8e02ce33e94", - "nix/callPackage.md": "140a02e57cd01d646483e3c21d72243d", + "nix/callPackage.md": "8ab988c8f1982ff047c706c5d66b69c7", "nix/index.md": "4efc7fcc4ea22834ba595497e5fb715c", "posix/index.md": "97b1b8ecb9a953e855a9acf0ab25b8c8", - "posix/signals.md": "e8a62cbece8a6bfc54a4e67bbdf3be7c", + "posix/signals.md": "f4132369878c683bfac4d7fd863d19ba", "templates/daily.md": "7866014e730e85683155207a02e367d8", - "posix/regexp.md": "eb1e686756c283a60a7213d3ed39e78b", + "posix/regexp.md": "cb53e537fc10ce83307f35497d48179f", "journal/2024-02-04.md": "e2b5678fc53d7284b71ed6820c02b954", "gawk/regexp.md": "d9229f1eabe1b99e965eecaa03bee86c", "_templates/daily.md": "5863e4524f8d012e153918d238c611a4", @@ -141,22 +145,22 @@ "_journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180", "_journal/2024-02-01.md": "3aa232387d2dc662384976fd116888eb", "_journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970", - "logic/equiv-trans.md": "315997b803b0748f5fc76d912ad97cda", + "logic/equiv-trans.md": "00c899a0a6a868a580a19cb11c416997", "_journal/2024-02-07.md": "8d81cd56a3b33883a7706d32e77b5889", "algorithms/loop-invariants.md": "cbefc346842c21a6cce5c5edce451eb2", - "algorithms/loop-invariant.md": "e39f4aa253f0baf908067bea81f6bced", + "algorithms/loop-invariant.md": "3b390e720f3b2a98e611b49a0bb1f5a9", "algorithms/running-time.md": "5efc0791097d2c996f931c9046c95f65", - "algorithms/order-growth.md": "513ea484fcdc184170205a425be77742", + "algorithms/order-growth.md": "12bf6c10653912283921dcc46c7fa0f8", "_journal/2024-02-08.md": "19092bdfe378f31e2774f20d6afbfbac", - "algorithms/sorting/selection-sort.md": "5ba56adddaf07653290af88f998f6c4a", + "algorithms/sorting/selection-sort.md": "0dc0b5237cf992e97b78f2584982fdbf", "algorithms/index 1.md": "6fada1f3d5d3af64687719eb465a5b97", "binary/hexadecimal.md": "c3d485f1fd869fe600334ecbef7d5d70", "binary/index.md": "9089c6f0e86a0727cd03984f51350de0", "_journal/2024-02-09.md": "a798d35f0b2bd1da130f7ac766166109", "c/types.md": "cf3e66e5aee58a94db3fdf0783908555", - "logic/quantification.md": "346ebe70e1fad9d95d81056ec9029793", + "logic/quantification.md": "df25c9b73548438f010f450e3755d030", "c/declarations.md": "2de27f565d1020819008ae80593af435", - "algorithms/sorting/bubble-sort.md": "a350fb36d1e677659142bf38f7abc89b", + "algorithms/sorting/bubble-sort.md": "0762175a4ba183fc7ed5b47758614197", "_journal/2024-02-10.md": "562b01f60ea36a3c78181e39b1c02b9f", "_journal/2024-01/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970", "_journal/2024-02/2024-02-09.md": "a798d35f0b2bd1da130f7ac766166109", @@ -170,16 +174,16 @@ "_journal/2024-02/2024-02-01.md": "3aa232387d2dc662384976fd116888eb", "_journal/2024-02/2024-02-10.md": "562b01f60ea36a3c78181e39b1c02b9f", "_journal/2024-02-11.md": "afee9f502b61e17de231cf2f824fbb32", - "binary/endianness.md": "1c579ea9106ec6b9c756608118a1f34d", - "logic/normal-form.md": "f8fd5ea205dfb7e331356b0574f0fe14", + "binary/endianness.md": "63117fe7795e2a10cb2eb7843a089d9d", + "logic/normal-form.md": "6fa46165cbbed5d312e0621f98d21f55", "_journal/2024-02-12.md": "240d17f356305de9c0c00282b2931acd", "_journal/2024-02/2024-02-11.md": "afee9f502b61e17de231cf2f824fbb32", - "encoding/ascii.md": "c01e50f96d0493d94dc4d520c0b6bb71", + "encoding/ascii.md": "34350e7b5a4109bcd21f9f411fda0dbe", "encoding/index.md": "071cfa6a5152efeda127b684f420d438", "c/strings.md": "aba6e449906d05aee98e3e536eb43742", - "logic/truth-tables.md": "7892ceaa416c9a65acc79ca1e6ff778f", - "logic/short-circuit.md": "e088e62ead26779f9a51dfd1caeeb9d4", - "logic/boolean-algebra.md": "ef381cb4a991d4d36fa44663a85e7927", + "logic/truth-tables.md": "3587646293a1f6646ed65541bc0a26f4", + "logic/short-circuit.md": "a3fb33603a38a6d3b268556dcbdfa797", + "logic/boolean-algebra.md": "e27c23ed7e924ef574e3be889809fa97", "_journal/2024-02-13.md": "6242ed4fecabf95df6b45d892fee8eb0", "_journal/2024-02/2024-02-12.md": "618c0035a69b48227119379236a02f44", "binary/shifts.md": "9bbeef29e98c3ab521f44b87528cf5c2", @@ -189,36 +193,36 @@ "_journal/2024-02/2024-02-14.md": "aa009f9569e175a8104b0537ebcc5520", "_journal/2024-02-16.md": "5cc129254afd553829be3364facd23db", "_journal/2024-02/2024-02-15.md": "16cb7563d404cb543719b7bb5037aeed", - "algebra/floor-ceiling.md": "556406772daaa415d546b1a8bf41b5dd", + "algebra/floor-ceiling.md": "9e088326fa53684c75fae45e09b0d251", "algebra/index.md": "90b842eb694938d87c7c68779a5cacd1", - "algorithms/binary-search.md": "f88a5b9f38f1856f2bd4f578d6079548", + "algorithms/binary-search.md": "8533a05ea372e007ab4e8a36fd2772a9", "_journal/2024-02-17.md": "7c37cb10515ed3d2f5388eaf02a67048", "_journal/2024-02/2024-02-16.md": "e701902e369ec53098fc2deed4ec14fd", "binary/integer-encoding.md": "7ace6ab6c5a4191ae0abdfe7e5abb6a2", - "combinatorics/index.md": "477bfcad2d88edfb823072b8afb9d236", + "combinatorics/index.md": "66efa649c4c87e58fc82c2199096ade4", "_journal/2024-02-18.md": "67e36dbbb2cac699d4533b5a2eaeb629", "_journal/2024-02/2024-02-17.md": "7c37cb10515ed3d2f5388eaf02a67048", - "combinatorics/multiplicative-principle.md": "f1430302e0a35b863fa965a834c4e40a", - "combinatorics/additive-principle.md": "e968028670f95ee9a7c5499ff7cb6792", + "combinatorics/multiplicative-principle.md": "14193048d2f8947cfc4082678bba6c50", + "combinatorics/additive-principle.md": "d036ac511e382d5c1caca437341a5915", "_journal/2024-02-19.md": "30d16c5373deb9cb128d2e7934ae256a", "_journal/2024-02/2024-02-18.md": "67e36dbbb2cac699d4533b5a2eaeb629", - "combinatorics/permutations.md": "19fd719c756040b31b7aea9595d9fb54", - "combinatorics/combinations.md": "a6a05717313bfcde5365691bca7c35d3", + "combinatorics/permutations.md": "1b994b48798699655ee64df29c640251", + "combinatorics/combinations.md": "8185794feca605d43d6fbf5c929a835e", "_journal/2024-02-20.md": "b85ba0eeeb16e30a602ccefabcc9763e", "_journal/2024-02/2024-02-19.md": "df1a9ab7ab89244021b3003c84640c78", - "combinatorics/inclusion-exclusion.md": "202a60120d451676d44df4d0be30a45a", + "combinatorics/inclusion-exclusion.md": "c27b49ee03cc5ee854d0e8bd12a1d505", "_journal/2024-02-21.md": "b9d944ecebe625da5dd72aeea6a916a2", "_journal/2024-02/2024-02-20.md": "af2ef10727726200c4defe2eafc7d841", - "algebra/radices.md": "0a7c37531c6ae4406e1c9e894166ffbe", + "algebra/radices.md": "56919586bfbbb96c53ac12924bdb04b1", "_journal/2024-02-22.md": "e01f1d4bd2f7ac2a667cdfd500885a2a", "_journal/2024-02/2024-02-21.md": "f423137ae550eb958378750d1f5e98c7", "_journal/2024-02-23.md": "219ce9ad15a8733edd476c97628b71fd", "_journal/2024-02/2024-02-22.md": "312e55d57868026f6e80f7989a889c2b", - "c17/strings.md": "3cedaa7a28f779e24c2665c7afdcf19a", + "c17/strings.md": "617821357921374bdb6db10f8c2f91ef", "c17/index.md": "78576ee41d0185df82c59999142f4edb", "c17/escape-sequences.md": "a8b99070336878b4e8c11e9e4525a500", - "c17/declarations.md": "cec6866dff8ad160467df62cfceb6872", - "algorithms/sorting/merge-sort.md": "a04394c72bd35bd84fe796bbc8ed1a0a", + "c17/declarations.md": "f55d31e93e67f03577300d9e92129e82", + "algorithms/sorting/merge-sort.md": "6506483f7df6507cee0407bd205dbedd", "_journal/2024-02-24.md": "9bb319d5014caf962a9ce3141076cff4", "_journal/2024-02/2024-02-23.md": "0aad297148e8cc4058b48b7e45787ca7", "_journal/2024-02-25.md": "fb1a48208c11d12262facc647749ca6f", @@ -230,28 +234,28 @@ "_journal/2024-02-28.md": "7489377c014a2ff3c535d581961b5b82", "_journal/2024-02/2024-02-27.md": "f75a0d04a875aeee932343dae0c78768", "filesystems/index.md": "cbd2b0290a3ba3b32abec4bd8bfefad5", - "filesystems/cas.md": "34906013a2a60fe5ee0e31809b4838aa", - "git/objects.md": "43d825371e820802f2402034fad89480", + "filesystems/cas.md": "d41c0d2e943adecbadd10a03fd1e4274", + "git/objects.md": "c6b7e6a26666386790d25d4ece38175d", "git/index.md": "83d2d95fc549d9e8436946c7bd058d15", - "encoding/integer.md": "d4866b6e236c3a67631d03582996eca2", + "encoding/integer.md": "8b7927d66439d2bdc4a9e50d6e43d9c7", "_journal/2024-02-29.md": "f610f3caed659c1de3eed5f226cab508", "_journal/2024-02/2024-02-28.md": "7489377c014a2ff3c535d581961b5b82", "_journal/2024-03-01.md": "a532486279190b0c12954966cbf8c3fe", "_journal/2024-02/2024-02-29.md": "0e502a2c8baf90c2f12859b03f10b5a1", "algebra/sequences.md": "97c217823aacf8910a1a37bde694ecfe", - "algebra/sequences/index.md": "d668df1467c7cc70691aeb1d9b17e39d", + "algebra/sequences/index.md": "91ec81d3aa22d1baef2ab4b24736c43c", "_journal/2024-03-02.md": "08c3cae1df0079293b47e1e9556f1ce1", "_journal/2024-03/2024-03-01.md": "70da812300f284df72718dd32fc39322", - "algebra/sequences/triangular-numbers.md": "dc3707088423708f2d55708d8b11f81f", - "algebra/sequences/square-numbers.md": "886fb22fb8dbfffdd2cd233558ea3424", + "algebra/sequences/triangular-numbers.md": "3623bebc476635cc7f5a3855221e1e31", + "algebra/sequences/square-numbers.md": "171f7c5a8dac088afba40923ab86c68e", "_journal/2024-03-03.md": "c4977a3778ed227b768c3f9ad5512670", "_journal/2024-03/2024-03-02.md": "8136792b0ee6e08232e4f60c88d461d2", "_journal/2024-03-04.md": "9ec052061e7a613ff877a4488576e82f", "_journal/2024-03/2024-03-03.md": "64e2f17b4d57a6bd42a3d1b7f2851b83", "_journal/2024-03-05.md": "e9a911c19bb4c0ff451db793248cb4bb", "_journal/2024-03/2024-03-04.md": "4948d90a08af2cff58c629c9a2e11ee4", - "algebra/sequences/geometric.md": "3cf58281df1d72bdd853eab4d24d75f2", - "algebra/sequences/arithmetic.md": "5ac02c9a08962dd816e4c4a53761e602", + "algebra/sequences/geometric.md": "57544cab59f0b8c28d4a11f0273a3119", + "algebra/sequences/arithmetic.md": "0e8d8168f04550cb506a218b298c1c7f", "_journal/2024-03-06.md": "ac7a3d764934f49b2be7aa76e402d853", "_journal/2024-03/2024-03-05.md": "94b28d0b9bc62cc0bd99d315fb7c6d30", "_journal/2024-03-07.md": "7bf68d6d81e89aa00f5ddd7510b69e3e", @@ -278,12 +282,12 @@ "_journal/2024-03/2024-03-15.md": "e54b2513beac5f46313b4c37622adf39", "_journal/2024-03-17.md": "72e99c7630085aee2c7f340a06b5ada7", "_journal/2024-03/2024-03-16.md": "ab7629c24ebe70838072cf6acec47cb0", - "encoding/floating-point.md": "83c663e3ecc51498968010d1931bd794", + "encoding/floating-point.md": "812c4da23a30b9c2a4a38bc5c7d40185", "_journal/2024-03-18.md": "8479f07f63136a4e16c9cd07dbf2f27f", "_journal/2024-03/2024-03-17.md": "23f9672f5c93a6de52099b1b86834e8b", "set/directed-graph.md": "b4b8ad1be634a0a808af125fe8577a53", "set/index.md": "b82a215fbee3c576186fc1af93c82fcb", - "set/graphs.md": "82c4938f9f6479c75d946c8e1263a5a1", + "set/graphs.md": "bffffb0caee44f403130edbc1753e803", "_journal/2024-03-19.md": "a0807691819725bf44c0262405e97cbb", "_journal/2024-03/2024-03-18.md": "63c3c843fc6cfc2cd289ac8b7b108391", "awk/variables.md": "e40a20545358228319f789243d8b9f77", @@ -295,14 +299,18 @@ "posix/awk/regexp.md": "46ceac3d5225ea3f3a375d74c2e2e0e9", "posix/awk/index.md": "cac4a1db94f9fc39c5e63ff6994b76aa", "x86-64/assembly.md": "6c4905468f3936ae260b281e2acd7ffc", - "x86-64/index.md": "4769ab45ca374c4225c9c4099220be82", + "x86-64/index.md": "db0441c243487fc070837596351ba34a", "_journal/2024-03-21.md": "a2572d2d5be0ee7c7f066d846e2f3e77", "_journal/2024-03/2024-03-20.md": "0a73ce399d275fe6ee3134a812f3f4f9", "_journal/2024-03-22.md": "8da8cda07d3de74f7130981a05dce254", "_journal/2024-03/2024-03-21.md": "cd465f71800b080afa5c6bdc75bf9cd3", - "x86-64/declarations.md": "60f5b240ea5565b33dc3585169fc41b1", - "x86-64/instructions.md": "c4b116179d2bd1f9510437e000f9c63d", - "git/refs.md": "de99450b5a4282ae1a694492f2b7f251" + "x86-64/declarations.md": "8efbeca5fa347571f5c3502afc3a6807", + "x86-64/instructions.md": "240b4ceddf174f48207ba6bed4d25246", + "git/refs.md": "954fc69004aa65b358ec5ce07c1435ce", + "set/trees.md": "56ef76493abcbfdb0256a54dc2d72ba3", + "_journal/2024-03-24.md": "f70f3ae6c75eab485c993869f0e6ffbd", + "_journal/2024-03/2024-03-23.md": "ad4e92cc2bf37f174a0758a0753bf69b", + "_journal/2024-03/2024-03-22.md": "a509066c9cd2df692549e89f241d7bd9" }, "fields_dict": { "Basic": [ diff --git a/notes/_journal/2024-03-24.md b/notes/_journal/2024-03-24.md new file mode 100644 index 0000000..438737a --- /dev/null +++ b/notes/_journal/2024-03-24.md @@ -0,0 +1,11 @@ +--- +title: "2024-03-24" +--- + +- [ ] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) \ No newline at end of file diff --git a/notes/_journal/2024-03-22.md b/notes/_journal/2024-03/2024-03-22.md similarity index 65% rename from notes/_journal/2024-03-22.md rename to notes/_journal/2024-03/2024-03-22.md index 7043e46..27aac63 100644 --- a/notes/_journal/2024-03-22.md +++ b/notes/_journal/2024-03/2024-03-22.md @@ -8,7 +8,9 @@ title: "2024-03-22" - [ ] Go (1 Life & Death Problem) - [ ] Korean (Read 1 Story) - [ ] Interview Prep (1 Practice Problem) -- [ ] Log Work Hours (Max 3 hours) +- [x] Log Work Hours (Max 3 hours) * Reach section 3.3 of "Computer Systems: A Programmer's Perspective". - * Basic [[x86-64/declarations|Intel data types]] and historical context around their naming. \ No newline at end of file + * Basic [[x86-64/declarations|Intel data types]] and historical context around their naming. +* Added flashcards on [[trees]]. +* Read chapter 5 "Replication" of "Designing Data-Intensive Applications". \ No newline at end of file diff --git a/notes/_journal/2024-03/2024-03-23.md b/notes/_journal/2024-03/2024-03-23.md new file mode 100644 index 0000000..af09e5e --- /dev/null +++ b/notes/_journal/2024-03/2024-03-23.md @@ -0,0 +1,18 @@ +--- +title: "2024-03-23" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] Go (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* Spent most of the day building out a first prototype for a hide-and-seek app. + * Loaded geometry in an Ecto-compatible way. + * Rendered Mapbox map and drew regions as well as current location. + * Next steps: + * Let multiple people connect and share connection status. + * Have a shared hiding timer and search timer. \ No newline at end of file diff --git a/notes/combinatorics/multiplicative-principle.md b/notes/combinatorics/multiplicative-principle.md index a7e8bca..25c9bf4 100644 --- a/notes/combinatorics/multiplicative-principle.md +++ b/notes/combinatorics/multiplicative-principle.md @@ -1,5 +1,5 @@ --- -title: Combinatorics +title: Multiplicative Principle TARGET DECK: Obsidian::STEM FILE TAGS: combinatorics set tags: diff --git a/notes/logic/equiv-trans.md b/notes/logic/equiv-trans.md index 2649f83..d5d294c 100644 --- a/notes/logic/equiv-trans.md +++ b/notes/logic/equiv-trans.md @@ -580,7 +580,7 @@ END%% %%ANKI Basic What identifier is guaranteed to not occur freely in $E_e^x$? -Back: None. +Back: N/A. Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. END%% diff --git a/notes/set/graphs.md b/notes/set/graphs.md index 955f136..9a98281 100644 --- a/notes/set/graphs.md +++ b/notes/set/graphs.md @@ -543,7 +543,7 @@ END%% Basic What is the in-degree of vertex $5$? ![[directed-graph-example.png]] -Back: $2$. +Back: $2$ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -552,7 +552,7 @@ END%% Basic What is the out-degree of vertex $5$? ![[directed-graph-example.png]] -Back: $1$. +Back: $1$ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). END%% @@ -798,7 +798,7 @@ END%% %%ANKI Basic -What path must exist if vertex $u$ is adjacent to vertex $v$? +What path must exist in a digraph where vertex $u$ is adjacent to vertex $v$? Back: $\langle v, u \rangle$ Reference: Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). diff --git a/notes/set/images/cyclic-undirected.png b/notes/set/images/cyclic-undirected.png new file mode 100644 index 0000000000000000000000000000000000000000..750f92b1351093dc264b79ecbf3fee1ba50cdd83 GIT binary patch literal 10770 zcmbt)bySpJ)b0!jNQZPQE!{{CDX26^cQ?`v($a!-homq_3K9Y`N=Pb5Ga}uB49z|G z`_{MapLeaxAHd9e-V=N8v-k5n=e*KTdyJ1mjRS!|@Kux*v>*_u2KfKrE++W>JVG)8 z{JG;Pr=oKg`~=;#js>5oycG4lwB2mId@Vd|Aa<^9E;ihrRvtDsuAcU8Ui;|X(xB19 z+eY#pHWpqEZmx_v4lXtjB@YKi0Rcu;3lByCJ^>*{enD|QK5>3NMpXqJsj?q12!s)$ zq9Ci|m$#cA?5FcL8`W($lHJO8&j2l3h?p2RLE1F_MQexTYOfM8J|ofHDA}mD`pibF z{Hun!3*4jB(=GAa+Pv*v4$kTC2+3I=2vx!!GRoF))XO<~V=qUz;oiYfV7ossF#HI0 z^qBSuquVpvk^MYD)Ox$LURAdBo~P}aME6CEc*N>Ko7d?!??F7)eqg>EXgE==>7j zLr*8Ih~+>nUi4{IOT)hsT}EQ;e!D`n%0t?sXIfvqBo4N&OpPl{BFT5p1r4AjJiIM* zlZPvjv4d$~;ypQwK%M(ag z<6z7@)x{_1Aahi?Pk7lefBTz!vH7n|8VG6kFaZ_hnfyb`x&->i#c@V*64uUsg}gTZ zGibf{xid# zTNC(Qbh#}_kH6(hu(*9*Tv-`A=gYeL&txGX(uf4Ah^;M0@Lc3U)+&r|Xr8#AVnPs| zHRSLz*R6}AofPrw_c@EC)Q^bn;XQHAZ)=35`hkp&?QNu|&(&-{2?+@mwX~44u&{tx zaSeZvq`Hw_z|EW@h(qwGj&XBBBb=;yp%82@u#+q1-SY0J z5cq?Tdhq1eHn6DhXwTqxg)WTXx!j!y*#tU?jL|MZ6^p(L zIt@A;YxU7mje)nzpE1lwzt9#X^uKD|pKEoaFu}1xe^8wSBFl@NN~6O>on%0O@j}u* zZ9)G`sip|$V+?PZ9Z5-D9YJBpIfqk|Us1{K8+L^Up*;H5^W1s!fQ)8`hj< zV`EcR{qXE61le4FB1($$x^9~k4>M}o<82V$n>Jfuj(X2^H6c;ac%CQ~^cJ_Jq>K!5 zQZlkvJgX0ZSDYTOv0>d~eYTvvPSt1c>WWCBlK{DATN{L^z0jcD5|w;aT^%A4`yOAw zvHkd4ub1d=+E{^?PWBdtb|tLX4@E-u=G#i1ZlYnaPr7+{c({L|^94SpOfs1BBhV;c z`aFl?Hfo6lqstHfM0kb?T$TTeTO~?hzsEw0t!r$DT7Tm~40t*zPa%(qSIxODj2vXXs$^BU)R)s>JG zizpsZBpW@=lIwGyllb#elh55TEW|@U=Wr|tG$;CPs{}HYMTdUt(f`TO_p5C{$~E{2`} zUx?UDqW?`Fc2hGf{`#zY2#3hq|3wqFep9om@yloM)2om?310%>8~sMx#0`&$k5PoS zkLq{eWXiSNCcXDgkK~@WMTG6Ed*N1((Sp`SP5ZzAqzfgGT9dwe8$q4rJX}KVR|JBbBCg5YAbO9_xt<%-No}W2*5D*F&Re#)@Li$9RV*H8F3gMD?`Nqeua zE>vF(J1_=G4M9H#gm!W$QSQ7>*;HGap4<66ipWJ;YZ-PwjXt+dSw!78e}J9cIsC@O z?$>Uhu5S8<7G{E8#<}D#cyKygTFsNYR~vbl?49rfHqJ0+ z;_JU}7uY#CWPN;EWPfBwPzl<8+VnC!*<(`Fh_lEfa-BBH`Otn1PO@At9X9*aC3y{Ms}((+oa8=~EN+x`65VQ1kZ1xR0%0@krF z`f+;Wc0Y0rWr=$~H1$JbA!z(zC<6m<}@=;M2Zk^K0!4l9$_;$zQR(K!(knqKi} zirUZz$|*$J^I{9{R`wS)UK|Ha<8Im*D9Oq~Z`bt5bIp8XtTtqE znMq1uL>~D|_PB4rHHS>+{BK|bm$rq)eck8JwY0VGZMLgbS5G*>JC)+exgQjcvIWhN z2-6a1o0#Muh}Q|p$P|YBNh=(Cb&pMX+Izw~KLqu0X*`aMlU+jMBFA*U+Mj;*ctb(_ zW)Cw*>_y3ei`9jjni@e>^%LOl2irv5Ogkkd?0QiSMn*I)3+?G3L-}`_B85-%GKUmj zD@P6v4n|I+g@Jk{b@n^W>v&_lMov&v)E5>iL3B5zZoA3$8#Qunz%*A_SXf6}o2dcw zP@*U4VVqo}?YELl(|}hGUf%^v;O6Gm(bZK1+pU~%a;DJ^*X-+dd9G`TZq4&?EQTO= z4k6V3k~*he9j&{)se_9Px3GvvD!>FNskzXnPo602>JAPJ5bH*q=9~L2xcb5^wtPND zP5Zq?y6b<{YUqn0tY~Nu5ck>`dpjl>bjp{Wo<4qn?9)E!0IMw97AGSmy}N{Rz7dwC z;SFIcOLJ|_jf;=3s;-VRG&BTui&J=TJn@uwd^lTBMf2QuM>w5&p=*6@ZDKH;(*dB3 zOu3^7Lg}L0*{X^zSS#ZnigcBf$emu>!Bu-)I!@_Q>H<0!YkHfis$NaO&D5i!qI!Fq z>g)MdcLRNVM5N9)N{^?E+)Qx3l|D|MNK=>Q*r|uM9!?1@A}+2%h(~!tuc*T$7)|Eo(E|Txa2Y)Kb=JQRX{nJe+^^=73OwPGLd|=6O`G_>?n5ficz&5f{rU5! z?6Pxs_}Tf0Zq@PYi%V^#i0LJwQEL0> z%>M9K|M9F7{B?CTFl)YaaL!bn$Pv5Rg75BO}9Z-UlvN8_t$Tx}Q!Q&NtePYAGsW05_F+eb0N=me^X3 zHs^OpGiv$~ymmY$PiXRkTIOP>Q7Gi{G$hKQd`{M>!oSjIfU%nQaQvl>^f{bCwZtp~ zwVz6)sA+$GyxC;Y7yUHT&g6sp%Ug$_76akMUtH2`7>O8lbwU3{-rn91X2B361jF~` zqmQY}7p_J?J*3lLE0rf~+dQxwLt>4ebw9Pa9l>hFWZ}AiYe>j@OD6ysMX}Kvg`3IK zH(PIkzTmqQT>b&isc7o^cMVVuxm#HBxwyH>#u4#L?jrs^6yM0~jG6cx)mOf^^RU_OTkIfnr*AB=T}` zk(%Ppg|4^+v6BkyJemvTE0CMUSNW!4CMI+M zo?HEtET%1TkOR@XHj*EYflF@wb;^INTWo3DG61qXa*k_!(+XeqWiterJqn;_fKVy5 z>&+b<9a9PmlegjB^zSLv>z&D-Jbik2JgII4QY?T;YG+3;!pf-teUYH2jQp7yj8)vX z-^aVfa=8WDT8g!`8c1c)?+%eFS1(M;$)N@lx?%=Et3oZm_X@S-_EkX0L5e9@oTQNJ z!$+!9xI&_X*dbeB%Vw}e1`AV`Q|bHn#22W2QRngif-#}8s(i-3%^z~`{7eLr^0tGi z%s-Nt36xY;-i@0`cB4TE>FDWM%{Dn4TwHO4@_-k9|3`~VDfF0HX)bOgGNy)%00ywO zvs>BwxKD0^ z&HelLFDXHc_Lbx>(KlpPL0j#YmqEzptQp`;t!JuYw9%vMD~*TbrS0w1(uIVR<*H9NkM7=-n!yZSD8>rLElhXzHrBDAwdi!z?x#)BY^Y{JzXn?Rm*oI`4Tp`c z_m!*WDr8zdvV2c@OTIQID~>u3$t{cv61K(|y)L_3Vc#f-E*db@nlbJ*l%A@xqc?`5 z2hu%)O(tltN1~QO3+GUGkRprX*6nnst#Y?KaLjPFNKxYEBRPhp3;&1G+EXN*>+kcx zLYh`lG1%nY?xkdh$@0SuPl)qU7agdo`XAhjH?*>(v#7j2t&9~l`!1D#(Fr%wKK$G| zk1d0RWlybXY>Zbi`RX6R)z8r9iUzELQbdm{9l} z>bC}<;lN~+TWQc*RGNYzsr%ms0eLg`uyX8|Fo^G>KU?d*iaBa;!QR0EiLw4{q>UVZ z!)ce7t>}cfp|b~?!wL#17T6|6EzZOyajRg7)Exm_(Urfq{_^uH%3f`LrcnD0QN4G| zvO;e{f{w=@mppxsF^|YCoKD&bW4qVTdO>e;q8vNmD%l1{t(4t%iU}A|b@jvXw?Cs7 zKKiZzxd61!>L2Qg>As8+eK`!59X)`ZD5vD-_f!Qg*y{-#bo=04S_U9d)eTk6Wo40o z7Qz@AJIEyrG&N;GL|%q;9~l0ulLplp6tm8w5s5dss}+Fw=m?L>2WH@v0PqxG{!T7? zuk76oONiCXcS9qir=W23ZrA4?vS{Mze@N)Wo|;#y?p?6-uivAK-rc^u~MyD!xL38w@a=Yb4u64YUa9>m^SCP!p+MoD(^?4uzy!X z81w^7v_E*L6hco;S?Nq4P9on5&;@)|#bTgW zkjdLoo8pdefMfTiWeT@2feo)9MBVQeazq1sT40`m-kr1A@2$mIqDpMa^ z*H0E;Nd=S0qhls28|;Inu#bD~xDCTh<6ZSn{LpBNS{{(%0G~2G9^DpOQcIDNf?u)^ zLFT3X*tmN47CydM8>YJaliB^b6SX*GF^m5kM;**eL^(C`*Dp)J?bGIb(a$bSc4Hq2 zGWrSvdc?Tqf!rwc`ptX#IDuLiXH@bC&$au?2Q+Pbn)MK;&^j(=JsO{ei@4xLq*=ls z!8~9Re2IKJ`Ux9Q2urcPNzf#mmNI4tkl-Fyc@UZk@=TBl}{s4GgI0B>hrA zbe5O11|0TNY<6Aj34T-jr9|DWeBDoB#;lSWIqiuL1Q*qCr>S>HjFCG5Lwwmu-Sv3{ z(jmCJ1_H4KA4laI!=H4A_?{jhn><#Z1fUjt0Tu$hi#_0Jkh{X%PWs7?cdzrgZ-dtlc#bRY<%Q%8h>qnaGq$PT${!xIiv`22H+?S7>_VxFRt7Ca} zYh4Ydq|W!95`ibq+CC6dcqYJXPiaJ5%RuoSw}0caJF7U9$y>3rVN0Q)|Y9JdG!Z#qF8;7Mi zAZjecqfXvAo*^{Nd;6*B+?7yw_;|w3Xvks3Q-;h`uO09oz{MWkLfxki0EGlB>KHJR z$u`e*@cnIEY+fwggmm`_P3{(9A$+>nR^m7NWtJR>3YdfcCchy9^59Hh$K6vXOL;iV z{VR?*Ge(Tsre9EITQ6i;}nH3`EiC)qZF)h@F*mJ=31`!qAW(`_HJVmd*A~ zU=vmvl}A!4sc5Rt-CZ|sK1~$rFXlG#x+~SXFawcl~g#C?VJhe*2xMgF#NXIZz_RUi`WfZa|c-z_>^Y_UV0ojF@C=4xGB|(uq__RK@?n>BnILUe!NA|A`ra{E zBS}*=z4tceGqVjPLcCh%PJc~g{iiyWw6`02ai~0=_U-`elbxHpA8_r%TDM@_{f;Ao z=kN4ig6O#m&}AiFF#h*(A6-AR{P<19?v60HA^|{0o$HdS24P7IJo0fT9RUU9&=Gx3 z+r;-M0($mVymY9^_DLf3<9O(p*Ic*3HwB=w0m0yXAj)<8Z5io>AJxpVZAN(uPT1y$eyn4mQTC<)# zp8Xq%y5M)2y#@b9*FV>rVG94;itkhaQQq?8mokaB_=A6Pt)*@dR!!|qZ?XG#h9%Ew z*GZ-Ccnwz=vvZUV+g`!`_p1&3;twAv)hYyCrVGTW#-UaF+H54uw2nhhdNDf2ZzRDPkPjNcDC2zRpUe-32pVnO=+#GlT79AUldwHg zH4=Z56xXa+Z<>$@nd`&kyHRqqWgHKP?k??@TVrrg;oZW17QkIOEN-xo4QwU?3 zN;vKhk!qiC%pJYJ+YeH+_YGt;^U2cAfX;Br4;~*e-kT{F!XIF z?YroWm$emH6SO;;ZMjm>rP8F`oT=XKjp}MkAP9p&EkOZxSm^q4hKkq~3nm^Dlr&K) zX+UE)#Yhb#3aPJIIGOgZIF<`2Izl^m%=Q79{&r;hgr&E_3?lRMM_lQ;_pQDMG!Xe0 zFZfS(=VJDQ)+J7Vr>Schq_SiS?TP3FcSF_}1E7$i?K?5@z5CMfNCuRbaX{&l)JTIy zTjVRY0vI^aNuqreUQrN$!`po+;I**mX3JDrTdQblN)L{D(x#Zk#F7(^%xBC(|JGjr zSig9xPEX$DzN1y+=8M<1$}!D5{z0;BjtmDn*5QA&0dVH`i3z!6$v?3sYdFtx05JzJ zkb{jaCfp!N+ASuX`IYTxfoco^-2))Y^byLGX|O90JVsp$Xnn)B~Wba@V6m$H}9;Z|agtZ)}YZHQr z-v)+;Pe3m~@BzI%U)lCtU0(-ejxmbDJzbJ|7nBzkP}YDxrgG}0oT>oSfFeSf%ajNq z+3l^Zjnl&whntWcRh86@pYN?Ug`QBD!dm~>H%*>y2pVXY1GSZ4;*J@X>(a$KnCIkX zypkWZGiR@K{B*t_~lZ{4+N6Hs= zCMG8B`Lt9i`1tsn0)}9K?oJOOM--udwNl~2fb4AJ;Ynvlhp`{`bN)oY>M)GcGLx0S zV4=E2|3&jN4hIO{cT{Ncxvjoc7pUr!G-Xq;^LQE z+uKpo7P^x~;B}Z*^SQm(w;bVenqVJ0@jDJdcYsFA+Cg3exTh;h#MBR}GF@G&*_bT- zQCpMrR;~;FGr-n@I|1CDR<~V#BOus#X!RAGjrKaJyza$S&VEjlXlQdhlh2bm^j!9# z3JIM|NZ!`gR^+s$Hw`s)C77xo9fy`5l;iK<_=ZdC0&7S4Uehly`(2Wj5 zc3DK=@_r&(DFsqYRYyl2sUorIHys9u^$M^Aj2@9d#1@AzRIk zqxgW>bqRmW)}`YBjmx4zsZ{cuHmeF}0#rZG3)d78r`ttvV2M+M&OM&_q(t{wfc73h zk_VLYKdh;u;RnqS93N*-mQHgM2>-s1(q<+>PWQvWX4~;V<%5o$LX}Fvkr{Pn1<;Io zN=Hezj?Okf+AIR_Ed$wiaEKZtF`-D)3}#*5w2-I-Fw8m9TJ%Te z>Bg7`!w>GiTEVZ9rTw^aPcDDGKnl;z^h98xsLHgJ9(tK)CvQCsI{wH)U(LIDiLy%j z5G?xSW7FY;-iTz4$LJ_ep=n44DV@^7^cTb%T*Nxy_J(cvH}~?VgiWy|Bku^&tNO$o6@?Vk-NCu z)Av8u(9?@im$@P>)=>81z-B^cr!a}6JMCk*4#TGrF@It$NLw2!_pXhs%r`ip4oXmq zZbs;LFpfdT5L)be^Cb&9xwx1F$}+NTy+A%NP@-HdKW--U5oO!W74;a&OK_pXZvv{A ze1BV9G>?D^OTEASrtjGVkP-b(kuiryg*UWxbaW*{DtGB$vc3j{7;qfiO-o#%+Vw93 zuGo)r1&L-o#y|X;$OGnD`JpI}>^|jhYAGRtX3_Q9!lo+egLou-q4erG0&= zt!bY+vA)7=(7Un+)sJF_NK!fRLlf%6rX$ITjto!Y6B9|em z53tl7#b(~gpA1S#D`mXQ;zZ}Y;-6iy%KBb^h)$L|gw?j5iN#-m1s6TQW-g6wJ$x>8 zZxotieZ4BhKpPS5MFSwhr|q7{>o3i^M;WwA{r}qIU8pO`n!2q!y`XBq6BC#h^Cs30 z4C|gxD66i<0V-poH8}mwQ2-Z2rn=8Xlw`VaiPtq01Upg$Nxzy>HH@PFIX`%UjzmtM ziOXwBcGaL8QG0#vhyYg%z`;EUUndoH6EyzOcD7jQJ-N?*O~6w>?JlluCoEU9$;tj_@xfb1Zq(U+3l3Gs9! z1bK14mQ|#AxZ{A569njRh9nd3r4M@z&D}edpqL1$mcD(Oi35+ZskK#6d8KRDM`9ZG zcJ;t|<|SzHPMo0z?9c63VkR+30}+*}sVT!3iV!4*{sb|T(imG|P%m1hkxN^n0f8JIB0S~_hXUD|W!>|)-d`Kwd1QV*QBG( z@>mY43LsYh3KZA$xQCfSW7zsANAsDi+1qEg11t^k+%@r5Jo6D`Q&_Y`nLWq>KFhnO zw4u^#Gq~;KeZOh^?l_8rUX^HTHPL8;;X0hMy~RpLd5P-~4A4{TTIXbBR_Xq0n`bXd zk$L{CU1}E);0MaXj^hw4ErXz?;(~2Ls=8zut#8uw0VxKm-dBmS$0I$ z>eJ6nGobx7MJ6Z9SRZH4#5Dwo2uEpLKR}nR_Iz(!-$@usdmm7ZWk8S3y~{5~M>5Yt zg&+FhT~H}mMb0-0z21E`;n~y9-S#?d2ZySI0R4mxDB z6mH+d2em=v*6Rilq^7W5+jcrV6YC)mQtvbk_nwdZcVNzcVasN0rn)#$40Q{k?OQ|8 z)CZ%CzK)C_z)9$PaMt_2UjWa_iHocVIG$$BnsKtKr>ZKpD*x?}8pM?sghaxbEcZ3C zf){ulFUZ;}v; zN_3r{`+*K#^1kCeBj!Fnhlsaz=!y4$_OO?0{J~0L{U-DV51Dw6pH_09R-%s&VKD%) rp^WB7&v=A62<|J2{6Ah%yp}QV%;+>v-L(eyH6bdBY6^97=HdSbHy*DC literal 0 HcmV?d00001 diff --git a/notes/set/images/forest.png b/notes/set/images/forest.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6bacbfc9125ca1674028912dcac1f8dd8be38d GIT binary patch literal 9822 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 literal 0 HcmV?d00001 diff --git a/notes/set/images/rooted-tree.png b/notes/set/images/rooted-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..44780da1a5bbaf7b9543da5fed343e0ae453527f GIT binary patch literal 22357 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 literal 0 HcmV?d00001 diff --git a/notes/set/trees.md b/notes/set/trees.md new file mode 100644 index 0000000..428b3c8 --- /dev/null +++ b/notes/set/trees.md @@ -0,0 +1,601 @@ +--- +title: Trees +TARGET DECK: Obsidian::STEM +FILE TAGS: set::graph +tags: + - graph + - set +--- + +## Overview + +A **free tree** is a connected, acyclic, undirected [[graphs|graph]]. If an undirected graph is acyclic but possibly disconnected, it is a **forest**. + +%%ANKI +Basic +What is a free tree? +Back: A connected, acyclic, undirected graph. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is a forest? +Back: An acyclic undirected graph. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What additional property must an undirected graph exhibit to be a forest? +Back: It must be acyclic. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What additional properties must an undirected graph exhibit to be a free tree? +Back: It must be acyclic and connected. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What additional properties must a forest exhibit to be a free tree? +Back: It must be connected. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What additional properties must a free tree exhibit to be a forest? +Back: N/A +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a free tree, why not? +![[free-tree.png]] +Back: N/A +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a free tree, why not? +![[forest.png]] +Back: Because it is disconnected. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a free tree, why not? +![[cyclic-undirected.png]] +Back: Because it contains a cycle. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a forest, why not? +![[free-tree.png]] +Back: N/A +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a forest, why not? +![[forest.png]] +Back: N/A +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +If the following isn't a forest, why not? +![[cyclic-undirected.png]] +Back: Because it contains a cycle. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +How do free trees pictorially relate to forests? +Back: A forest is drawn as one or more free trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +A **rooted tree** is a free tree in which one vertex is distinguished/blessed as the **root**. We call vertices of rooted trees **nodes**. + +Let $T$ be a rooted tree with root $r$. Any node $y$ on the simple path from $r$ to node $x$ is an **ancestor** of $x$. Likewise, $x$ is a **descendant** of $y$. If the last edge on the path from $r$ to $x$ is $\{y, x\}$, $y$ is the **parent** of $x$ and $x$ is a **child** of $y$. Nodes with the same parent are called **siblings**. + +A node with no children is an **external node** or **leaf**. A node with at least one child is an **internal node** or **nonleaf**. The number of children of a node is the **degree** of said node. The length of the simple path from the root to a node $x$ is the **depth** of $x$ in $T$. A **level** of a tree consists of all nodes at the same depth. The **height** of a node in a tree is the length of the longest simple path from the node to a leaf. + +%%ANKI +Basic +What is a rooted tree? +Back: A free tree in which one of the vertices is distinguished from the others. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every rooted tree a free tree? +Back: Yes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every free tree a rooted tree? +Back: No. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which free trees are not considered rooted trees? +Back: Those without some vertex identified as the root. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What distinguishes a node from a vertex? +Back: A node is a vertex of a rooted tree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every vertex a node? +Back: No. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Is every node a vertex? +Back: Yes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Cloze +{Nodes} are to rooted trees whereas {vertices} are to free trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which of free trees or rooted trees is a more general concept? +Back: Free trees. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What does it mean for node $y$ to be an ancestor of node $x$ in a rooted tree? +Back: $y$ is in the simple path from the root to $x$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What does it mean for node $y$ to be a descendent of node $x$ in a rooted tree? +Back: $x$ is in the simple path from the root to $y$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Cloze +In a rooted tree, if $y$ is an {ancestor} of $x$, then $x$ is a {descendant} of $y$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the ancestors of a rooted tree's root? +Back: Just the root itself. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the descendants of a rooted tree's root? +Back: Every node in the tree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the proper ancestors of a rooted tree's root? +Back: There are none. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the proper descendants of a rooted tree's root? +Back: Every node but the root. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What does it mean for node $y$ to be a child of node $x$ in a rooted tree? +Back: There exists a path from the root to $y$ such that the last edge is $\{x, y\}$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What does it mean for node $y$ to be a parent of node $x$ in a rooted tree? +Back: There exists a path from the root to $x$ such that the last edge is $\{y, x\}$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how does the concept of "ancestor" relate to "parent"? +Back: Ancestors include parents, parents of parents, etc. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how does the concept of "descendants" relate to "child"? +Back: Descendants include children, children of children, etc. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how many ancestors does a node have? +Back: At least one (i.e. itself). +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how many parents does a node have? +Back: Zero or one. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how many descendants does a node have? +Back: At least one (i.e. itself). +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, how many children does a node have? +Back: Zero or more. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes in a rooted tree has no parent? +Back: Just the root. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, what are siblings? +Back: Nodes that have the same parent. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, what is an external node? +Back: A node with no children. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, what alternative term is used in favor of "external node"? +Back: A leaf. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, what is an internal node? +Back: A node with at least one child. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +In a rooted tree, what alternative term is used in favor of "internal node"? +Back: A nonleaf. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Cloze +{1:External} nodes are to {2:leaf} nodes whereas {2:internal} nodes are to {1:nonleaf} nodes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree. What does the degree of a node refer to? +Back: The number of children that node has. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree. What does the depth of a node refer to? +Back: The length of the simple path from the root to the node. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree. What does a level refer to? +Back: All nodes in $T$ that have the same depth. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree. What does the height of a node refer to? +Back: The length of the longest simple path from said node to a leaf. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the height of a rooted tree in terms of "height"? +Back: The height of its root. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the height of a rooted tree in terms of "depth"? +Back: The largest depth of any node in the tree. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree of height $h$. Which nodes have height $0$? +Back: The external nodes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree of height $h$. Which nodes have height $h$? +Back: The root node. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree of height $h$. Which nodes have depth $0$? +Back: The root. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Let $T$ be a rooted tree of height $h$. Which nodes have depth $h$? +Back: The external nodes. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the height of this rooted tree? +![[rooted-tree.png]] +Back: $4$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the height of node $4$ in the following rooted tree? +![[rooted-tree.png]] +Back: $1$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What is the depth of node $11$ in the following rooted tree? +![[rooted-tree.png]] +Back: $2$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which node has the largest depth in the following rooted tree? +![[rooted-tree.png]] +Back: $9$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which node has the largest height in the following rooted tree? +![[rooted-tree.png]] +Back: $7$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes are on level $3$ in the following rooted tree? +![[rooted-tree.png]] +Back: $1$, $6$, and $5$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which level has the most nodes in the following rooted tree? +![[rooted-tree.png]] +Back: The second level. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes have depth corresponding to this rooted tree's height? +![[rooted-tree.png]] +Back: $9$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes have the most siblings in the following rooted tree? +![[rooted-tree.png]] +Back: $3$, $10$, and $4$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes are ancestors to $12$ in the following rooted tree? +![[rooted-tree.png]] +Back: $12$, $3$, and $7$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes are descendants to $4$ in the following rooted tree? +![[rooted-tree.png]] +Back: $4$, $11$, and $2$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes are parents of $6$ in the following rooted tree? +![[rooted-tree.png]] +Back: $8$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +Which nodes are children of $7$ in the following rooted tree? +![[rooted-tree.png]] +Back: $3$, $10$, and $4$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the internal nodes of the following rooted tree? +![[rooted-tree.png]] +Back: $7$, $3$, $4$, $12$, $8$, and $5$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What are the external nodes of the following rooted tree? +![[rooted-tree.png]] +Back: $10$, $11$, $2$, $1$, $6$, and $9$. +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +%%ANKI +Basic +What level does node $6$ reside on in the following rooted tree? +![[rooted-tree.png]] +Back: $3$ +Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). + +END%% + +## Bibliography + +* Thomas H. Cormen et al., _Introduction to Algorithms_, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022). \ No newline at end of file