{"id":27374,"date":"2025-04-22T14:08:47","date_gmt":"2025-04-22T07:08:47","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=27374"},"modified":"2025-04-22T14:11:30","modified_gmt":"2025-04-22T07:11:30","slug":"cau-truc-du-lieu-tree-cay","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/","title":{"rendered":"C\u1ea5u tr\u00fac d\u1eef li\u1ec7u Tree (C\u00e2y): \u0110\u1ecbnh ngh\u0129a, Ph\u00e2n lo\u1ea1i &#038; \u1ee8ng d\u1ee5ng"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Tree-cay-la-gi\" >Tree (c\u00e2y) l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Tai-sao-cau-truc-du-lieu-Cay-lai-quan-trong\" >T\u1ea1i sao c\u1ea5u tr\u00fac d\u1eef li\u1ec7u C\u00e2y l\u1ea1i quan tr\u1ecdng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cac-thuat-ngu-co-ban-can-nam-vung-ve-Cay\" >C\u00e1c thu\u1eadt ng\u1eef c\u01a1 b\u1ea3n c\u1ea7n n\u1eafm v\u1eefng v\u1ec1 C\u00e2y<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Nut-Node-Nut-Goc-Root-Nut-La-Leaf-Nut-Trong-Internal-Node\" >N\u00fat (Node): N\u00fat G\u1ed1c (Root), N\u00fat L\u00e1 (Leaf), N\u00fat Trong (Internal Node)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Quan-he-giua-cac-Nut-Nut-Cha-Parent-Nut-Con-Child-Nut-Anh-Em-Sibling\" >Quan h\u1ec7 gi\u1eefa c\u00e1c N\u00fat: N\u00fat Cha (Parent), N\u00fat Con (Child), N\u00fat Anh Em (Sibling)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Canh-Edge\" >C\u1ea1nh (Edge)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Duong-di-Path-Chieu-dai-duong-di-Path-Length\" >\u0110\u01b0\u1eddng \u0111i (Path), Chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i (Path Length)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Chieu-cao-Height-cua-Nut-va-Cay\" >Chi\u1ec1u cao (Height) c\u1ee7a N\u00fat v\u00e0 C\u00e2y<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Do-sau-Depth-cua-Nut\" >\u0110\u1ed9 s\u00e2u (Depth) c\u1ee7a N\u00fat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Bac-Degree-cua-Nut\" >B\u1eadc (Degree) c\u1ee7a N\u00fat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-con-Subtree\" >C\u00e2y con (Subtree)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Phan-loai-cac-cau-truc-du-lieu-Cay-pho-bien\" >Ph\u00e2n lo\u1ea1i c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u C\u00e2y ph\u1ed5 bi\u1ebfn<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-Nhi-phan-Binary-Tree-%E2%80%93-BT\" >C\u00e2y Nh\u1ecb ph\u00e2n (Binary Tree &#8211; BT)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-Nhi-phan-Tim-kiem-Binary-Search-Tree-%E2%80%93-BST\" >C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm (Binary Search Tree &#8211; BST)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-Nhi-phan-Tim-kiem-Can-bang-Balanced-BST\" >C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm C\u00e2n b\u1eb1ng (Balanced BST)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-Heap-Heap\" >C\u00e2y Heap (Heap)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-B-va-B-B-Tree-B-Tree\" >C\u00e2y B v\u00e0 B+ (B-Tree &amp; B+ Tree)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-Trie-Prefix-Tree-Radix-Tree\" >C\u00e2y Trie (Prefix Tree \/ Radix Tree)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cac-thao-tac-phep-toan-co-ban-tren-Cay\" >C\u00e1c thao t\u00e1c (ph\u00e9p to\u00e1n) c\u01a1 b\u1ea3n tr\u00ean C\u00e2y<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Duyet-cay-Tree-Traversal-%E2%80%93-Cach-%E2%80%9Ctham%E2%80%9D-cac-nut\" >Duy\u1ec7t c\u00e2y (Tree Traversal) &#8211; C\u00e1ch &#8220;th\u0103m&#8221; c\u00e1c n\u00fat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Tim-kiem-Searching-tren-Cay\" >T\u00ecm ki\u1ebfm (Searching) tr\u00ean C\u00e2y<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Them-nut-Insertion-vao-Cay\" >Th\u00eam n\u00fat (Insertion) v\u00e0o C\u00e2y<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Xoa-nut-Deletion-khoi-Cay\" >X\u00f3a n\u00fat (Deletion) kh\u1ecfi C\u00e2y<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Vi-du-cai-dat-cau-truc-du-lieu-cay\" >V\u00ed d\u1ee5 c\u00e0i \u0111\u1eb7t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cai-dat-Lop-Nut-Node-Class\" >C\u00e0i \u0111\u1eb7t L\u1edbp N\u00fat (Node Class)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cai-dat-cay-nhi-phan-tim-kiem-BST-Class-co-ban-Them-Tim-kiem\" >C\u00e0i \u0111\u1eb7t c\u00e2y nh\u1ecb ph\u00e2n t\u00ecm ki\u1ebfm (BST Class) c\u01a1 b\u1ea3n (Th\u00eam, T\u00ecm ki\u1ebfm)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Vi-du-code-duyet-cay-Inorder-LNR-bang-de-quy\" >V\u00ed d\u1ee5 code duy\u1ec7t c\u00e2y Inorder (LNR) b\u1eb1ng \u0111\u1ec7 quy<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Phan-tich-do-phuc-tap-thuat-toan-Complexity-Analysis\" >Ph\u00e2n t\u00edch \u0111\u1ed9 ph\u1ee9c t\u1ea1p thu\u1eadt to\u00e1n (Complexity Analysis)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Ung-dung-thuc-te-cua-cau-truc-du-lieu-cay\" >\u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#To-chuc-he-thong-tep-tin-File-Systems\" >T\u1ed5 ch\u1ee9c h\u1ec7 th\u1ed1ng t\u1ec7p tin (File Systems)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Lap-chi-muc-co-so-du-lieu-Database-Indexing-%E2%80%93-BB-Trees\" >L\u1eadp ch\u1ec9 m\u1ee5c c\u01a1 s\u1edf d\u1eef li\u1ec7u (Database Indexing &#8211; B\/B+ Trees)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Phan-tich-cu-phap-HTMLXML-DOM-Structure\" >Ph\u00e2n t\u00edch c\u00fa ph\u00e1p HTML\/XML (DOM Structure)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Thuat-toan-dinh-tuyen-mang-Network-Routing\" >Thu\u1eadt to\u00e1n \u0111\u1ecbnh tuy\u1ebfn m\u1ea1ng (Network Routing)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Sap-xep-du-lieu-Heapsort\" >S\u1eafp x\u1ebfp d\u1eef li\u1ec7u (Heapsort)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Cay-quyet-dinh-trong-AIML-Decision-Trees\" >C\u00e2y quy\u1ebft \u0111\u1ecbnh trong AI\/ML (Decision Trees)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/#Goi-y-tu-khoaTu-dong-hoan-thanh-Autocomplete-%E2%80%93-Trie\" >G\u1ee3i \u00fd t\u1eeb kh\u00f3a\/T\u1ef1 \u0111\u1ed9ng ho\u00e0n th\u00e0nh (Autocomplete &#8211; Trie)<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>Trong <a href=\"https:\/\/interdata.vn\/blog\/lap-trinh-la-gi\/\">l\u1eadp tr\u00ecnh<\/a>, c\u1ea5u tr\u00fac d\u1eef li\u1ec7u Tree (c\u00e2y) l\u00e0 m\u1ed9t trong nh\u1eefng n\u1ec1n t\u1ea3ng quan tr\u1ecdng gi\u00fap x\u1eed l\u00fd d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch c\u00f3 t\u1ed5 ch\u1ee9c v\u00e0 hi\u1ec7u qu\u1ea3. B\u00e0i vi\u1ebft n\u00e0y s\u1ebd gi\u00fap b\u1ea1n hi\u1ec3u r\u00f5: Tree l\u00e0 g\u00ec, t\u1ea1i sao n\u00f3 quan tr\u1ecdng, c\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n nh\u01b0 Node, Root, Leaf, v\u00e0 \u0111i s\u00e2u v\u00e0o ph\u00e2n lo\u1ea1i, thao t\u00e1c, v\u00ed d\u1ee5 c\u00e0i \u0111\u1eb7t, cho \u0111\u1ebfn nh\u1eefng \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf trong AI, c\u01a1 s\u1edf d\u1eef li\u1ec7u, h\u1ec7 th\u1ed1ng t\u1ec7p tin.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tree-cay-la-gi\"><\/span>Tree (c\u00e2y) l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/interdata.vn\/blog\/cau-truc-du-lieu-tree-cay\/\"><strong>Tree (c\u00e2y)<\/strong><\/a> l\u00e0 m\u1ed9t <strong>c\u1ea5u tr\u00fac d\u1eef li\u1ec7u (data structure)<\/strong> c\u01a1 b\u1ea3n v\u00e0 quan tr\u1ecdng, thu\u1ed9c lo\u1ea1i <strong>phi tuy\u1ebfn t\u00ednh (non-linear)<\/strong>. N\u00f3 \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 bi\u1ec3u di\u1ec5n m\u1ed1i quan h\u1ec7 ph\u00e2n c\u1ea5p (hierarchical relationship) gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed d\u1eef li\u1ec7u. H\u00e3y ngh\u0129 v\u1ec1 n\u00f3 nh\u01b0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c <strong>n\u00fat (nodes)<\/strong> \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i v\u1edbi nhau b\u1edfi c\u00e1c <strong>c\u1ea1nh (edges)<\/strong>.<\/p>\n<p>\u0110\u1ec3 d\u1ec5 h\u00ecnh dung h\u01a1n, b\u1ea1n c\u00f3 th\u1ec3 li\u00ean t\u01b0\u1edfng c\u1ea5u tr\u00fac c\u00e2y v\u1edbi m\u1ed9t c\u00e2y gia ph\u1ea3 quen thu\u1ed9c. C\u00f3 m\u1ed9t <strong>n\u00fat g\u1ed1c (root)<\/strong> duy nh\u1ea5t \u0111\u1ea1i di\u1ec7n cho t\u1ed5 ti\u00ean cao nh\u1ea5t. T\u1eeb n\u00fat g\u1ed1c n\u00e0y, c\u00e1c nh\u00e1nh (c\u1ea1nh) t\u1ecfa ra, n\u1ed1i \u0111\u1ebfn c\u00e1c <strong>n\u00fat con (child nodes)<\/strong> \u2013 t\u01b0\u01a1ng t\u1ef1 nh\u01b0 con ch\u00e1u trong gia \u0111\u00ecnh. M\u1ed7i n\u00fat con l\u1ea1i c\u00f3 th\u1ec3 ti\u1ebfp t\u1ee5c c\u00f3 c\u00e1c n\u00fat con kh\u00e1c.<\/p>\n<p>\u0110i\u1ec3m kh\u00e1c bi\u1ec7t c\u1ed1t l\u00f5i c\u1ee7a c\u00e2y so v\u1edbi c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u tuy\u1ebfn t\u00ednh nh\u01b0 m\u1ea3ng (<a href=\"https:\/\/interdata.vn\/blog\/array-la-gi\/\">array<\/a>) hay danh s\u00e1ch li\u00ean k\u1ebft (linked <a href=\"https:\/\/interdata.vn\/blog\/list-trong-python\/\">list<\/a>) n\u1eb1m \u1edf ch\u1ed7 d\u1eef li\u1ec7u kh\u00f4ng \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp th\u00e0nh m\u1ed9t h\u00e0ng duy nh\u1ea5t. Thay v\u00e0o \u0111\u00f3, d\u1eef li\u1ec7u trong c\u00e2y \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c theo nhi\u1ec1u c\u1ea5p \u0111\u1ed9, nhi\u1ec1u nh\u00e1nh, cho ph\u00e9p m\u00f4 h\u00ecnh h\u00f3a c\u00e1c m\u1ed1i quan h\u1ec7 ph\u1ee9c t\u1ea1p m\u1ed9t c\u00e1ch tr\u1ef1c quan v\u00e0 t\u1ef1 nhi\u00ean.<\/p>\n<p>M\u1ed7i c\u00e2y (tr\u1eeb c\u00e2y r\u1ed7ng) s\u1ebd c\u00f3 m\u1ed9t n\u00fat \u0111\u1eb7c bi\u1ec7t g\u1ecdi l\u00e0 n\u00fat g\u1ed1c (root) \u2013 \u0111i\u1ec3m kh\u1edfi \u0111\u1ea7u c\u1ee7a m\u1ecdi nh\u00e1nh. C\u00e1c n\u00fat kh\u00f4ng c\u00f3 n\u00fat con \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 n\u00fat l\u00e1 (leaf nodes), \u0111\u00e1nh d\u1ea5u \u0111i\u1ec3m k\u1ebft th\u00fac c\u1ee7a m\u1ed9t nh\u00e1nh. M\u1ed1i li\u00ean k\u1ebft gi\u1eefa c\u00e1c n\u00fat \u0111\u01b0\u1ee3c th\u1ec3 hi\u1ec7n qua c\u00e1c c\u1ea1nh (edges).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay.jpg\" alt=\"C\u1ea5u tr\u00fac d\u1eef li\u1ec7u tree (c\u00e2y)\" width=\"750\" height=\"500\" class=\"aligncenter size-full wp-image-27382\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay.jpg 750w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-300x200.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tai-sao-cau-truc-du-lieu-Cay-lai-quan-trong\"><\/span>T\u1ea1i sao c\u1ea5u tr\u00fac d\u1eef li\u1ec7u C\u00e2y l\u1ea1i quan tr\u1ecdng?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>C\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t kh\u00e1i ni\u1ec7m l\u00fd thuy\u1ebft trong s\u00e1ch v\u1edf. N\u00f3 th\u1ef1c s\u1ef1 l\u00e0 n\u1ec1n t\u1ea3ng cho r\u1ea5t nhi\u1ec1u \u1ee9ng d\u1ee5ng v\u00e0 h\u1ec7 th\u1ed1ng m\u00e0 ch\u00fang ta s\u1eed d\u1ee5ng h\u00e0ng ng\u00e0y. V\u1eady t\u1ea1i sao c\u00e2y l\u1ea1i quan tr\u1ecdng \u0111\u1ebfn v\u1eady trong <strong>khoa h\u1ecdc m\u00e1y t\u00ednh (computer science)<\/strong> v\u00e0 <strong>l\u1eadp tr\u00ecnh (programming)<\/strong>?<\/p>\n<p>L\u00fd do ch\u00ednh \u0111\u1ea7u ti\u00ean l\u00e0 kh\u1ea3 n\u0103ng bi\u1ec3u di\u1ec5n d\u1eef li\u1ec7u ph\u00e2n c\u1ea5p m\u1ed9t c\u00e1ch t\u1ef1 nhi\u00ean. Nhi\u1ec1u d\u1eef li\u1ec7u trong th\u1ebf gi\u1edbi th\u1ef1c c\u00f3 c\u1ea5u tr\u00fac th\u1ee9 b\u1eadc r\u00f5 r\u00e0ng, v\u00ed d\u1ee5 nh\u01b0 s\u01a1 \u0111\u1ed3 t\u1ed5 ch\u1ee9c c\u00f4ng ty, c\u1ea5u tr\u00fac th\u01b0 m\u1ee5c t\u1ec7p tin, hay th\u1eadm ch\u00ed l\u00e0 c\u00e2y ph\u00e2n lo\u1ea1i sinh h\u1ecdc. C\u00e2y cung c\u1ea5p m\u1ed9t m\u00f4 h\u00ecnh ho\u00e0n h\u1ea3o \u0111\u1ec3 th\u1ec3 hi\u1ec7n c\u00e1c m\u1ed1i quan h\u1ec7 cha-con n\u00e0y.<\/p>\n<p>Th\u1ee9 hai, m\u1ed9t s\u1ed1 lo\u1ea1i c\u00e2y \u0111\u1eb7c bi\u1ec7t nh\u01b0 <strong><a href=\"https:\/\/interdata.vn\/blog\/cay-nhi-phan-la-gi\/\">C\u00e2y Nh\u1ecb ph\u00e2n<\/a> T\u00ecm ki\u1ebfm (Binary Search Tree &#8211; BST)<\/strong> hay c\u00e1c bi\u1ebfn th\u1ec3 c\u00e2n b\u1eb1ng c\u1ee7a n\u00f3 (AVL, Red-Black Tree) cho ph\u00e9p th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c t\u00ecm ki\u1ebfm, th\u00eam, x\u00f3a d\u1eef li\u1ec7u c\u1ef1c k\u1ef3 hi\u1ec7u qu\u1ea3. V\u1edbi m\u1ed9t c\u00e2y c\u00e2n b\u1eb1ng, c\u00e1c thao t\u00e1c n\u00e0y th\u01b0\u1eddng ch\u1ec9 m\u1ea5t th\u1eddi gian logarith (O(log n)), nhanh h\u01a1n \u0111\u00e1ng k\u1ec3 so v\u1edbi t\u00ecm ki\u1ebfm tuy\u1ebfn t\u00ednh (O(n)) tr\u00ean m\u1ea3ng ho\u1eb7c danh s\u00e1ch kh\u00f4ng s\u1eafp x\u1ebfp.<\/p>\n<p>Th\u1ee9 ba, c\u00e2y l\u00e0 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u \u0111\u1ed9ng (dynamic), ngh\u0129a l\u00e0 k\u00edch th\u01b0\u1edbc c\u1ee7a n\u00f3 c\u00f3 th\u1ec3 thay \u0111\u1ed5i d\u1ec5 d\u00e0ng trong qu\u00e1 tr\u00ecnh ch\u1ea1y ch\u01b0\u01a1ng tr\u00ecnh. B\u1ea1n c\u00f3 th\u1ec3 th\u00eam ho\u1eb7c x\u00f3a c\u00e1c n\u00fat m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i \u0111\u1ecbnh tr\u01b0\u1edbc k\u00edch th\u01b0\u1edbc t\u1ed1i \u0111a nh\u01b0 m\u1ea3ng, mang l\u1ea1i s\u1ef1 linh ho\u1ea1t cao trong <a href=\"https:\/\/interdata.vn\/blog\/memory-management-la-gi\/\">qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb<\/a> v\u00e0 d\u1eef li\u1ec7u.<\/p>\n<p>Cu\u1ed1i c\u00f9ng, c\u00e2y l\u00e0 n\u1ec1n t\u1ea3ng cho nhi\u1ec1u <strong><a href=\"https:\/\/interdata.vn\/blog\/thuat-toan-algorithm\/\">thu\u1eadt to\u00e1n<\/a> (algorithms)<\/strong> quan tr\u1ecdng kh\u00e1c. V\u00ed d\u1ee5, thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp Heap Sort s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac d\u1eef li\u1ec7u Heap (m\u1ed9t lo\u1ea1i c\u00e2y \u0111\u1eb7c bi\u1ec7t). C\u00e1c thu\u1eadt to\u00e1n trong <a href=\"https:\/\/interdata.vn\/blog\/tri-tue-nhan-tao-ai\/\">tr\u00ed tu\u1ec7 nh\u00e2n t\u1ea1o<\/a> nh\u01b0 C\u00e2y Quy\u1ebft \u0111\u1ecbnh (Decision Tree) c\u0169ng d\u1ef1a tr\u00ean c\u1ea5u tr\u00fac n\u00e0y. Hi\u1ec3u v\u1ec1 c\u00e2y m\u1edf ra c\u00e1nh c\u1eeda \u0111\u1ec3 ti\u1ebfp c\u1eadn c\u00e1c kh\u00e1i ni\u1ec7m thu\u1eadt to\u00e1n ph\u1ee9c t\u1ea1p h\u01a1n.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cac-thuat-ngu-co-ban-can-nam-vung-ve-Cay\"><\/span>C\u00e1c thu\u1eadt ng\u1eef c\u01a1 b\u1ea3n c\u1ea7n n\u1eafm v\u1eefng v\u1ec1 C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0110\u1ec3 l\u00e0m vi\u1ec7c hi\u1ec7u qu\u1ea3 v\u1edbi c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y, vi\u1ec7c n\u1eafm v\u1eefng c\u00e1c thu\u1eadt ng\u1eef li\u00ean quan l\u00e0 \u0111i\u1ec1u c\u1ea7n thi\u1ebft. Gi\u1ed1ng nh\u01b0 h\u1ecdc m\u1ed9t ng\u00f4n ng\u1eef m\u1edbi, bi\u1ebft c\u00e1c &#8220;t\u1eeb v\u1ef1ng&#8221; c\u01a1 b\u1ea3n s\u1ebd gi\u00fap b\u1ea1n hi\u1ec3u v\u00e0 di\u1ec5n \u0111\u1ea1t c\u00e1c kh\u00e1i ni\u1ec7m m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-01.jpg\" alt=\"C\u1ea5u tr\u00fac d\u1eef li\u1ec7u tree (c\u00e2y) 01\" width=\"750\" height=\"497\" class=\"aligncenter size-full wp-image-27379\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-01.jpg 750w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-01-300x199.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Nut-Node-Nut-Goc-Root-Nut-La-Leaf-Nut-Trong-Internal-Node\"><\/span>N\u00fat (Node): N\u00fat G\u1ed1c (Root), N\u00fat L\u00e1 (Leaf), N\u00fat Trong (Internal Node)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>N\u00fat (Node):<\/strong> L\u00e0 th\u00e0nh ph\u1ea7n c\u01a1 b\u1ea3n nh\u1ea5t c\u1ee7a c\u00e2y, ch\u1ee9a d\u1eef li\u1ec7u (key ho\u1eb7c value) v\u00e0 c\u00e1c con tr\u1ecf (pointers) ho\u1eb7c tham chi\u1ebfu \u0111\u1ebfn c\u00e1c n\u00fat con c\u1ee7a n\u00f3. M\u1ed7i v\u00f2ng tr\u00f2n b\u1ea1n th\u1ea5y trong s\u01a1 \u0111\u1ed3 c\u00e2y th\u01b0\u1eddng bi\u1ec3u di\u1ec5n m\u1ed9t n\u00fat.<\/li>\n<li><strong>N\u00fat G\u1ed1c (Root Node):<\/strong> L\u00e0 n\u00fat \u0111\u1eb7c bi\u1ec7t n\u1eb1m \u1edf v\u1ecb tr\u00ed cao nh\u1ea5t trong c\u00e2y (m\u1ee9c 0). N\u00f3 l\u00e0 n\u00fat duy nh\u1ea5t kh\u00f4ng c\u00f3 n\u00fat cha (parent node). M\u1ecdi c\u00e2y kh\u00f4ng r\u1ed7ng \u0111\u1ec1u c\u00f3 ch\u00ednh x\u00e1c m\u1ed9t n\u00fat g\u1ed1c. \u0110\u00e2y l\u00e0 \u0111i\u1ec3m xu\u1ea5t ph\u00e1t \u0111\u1ec3 truy c\u1eadp v\u00e0o c\u00e1c n\u00fat kh\u00e1c trong c\u00e2y.<\/li>\n<li><strong>N\u00fat L\u00e1 (Leaf Node):<\/strong> L\u00e0 c\u00e1c n\u00fat n\u1eb1m \u1edf t\u1eadn c\u00f9ng c\u1ee7a c\u00e1c nh\u00e1nh, t\u1ee9c l\u00e0 ch\u00fang kh\u00f4ng c\u00f3 b\u1ea5t k\u1ef3 n\u00fat con n\u00e0o (null children). Ch\u00fang \u0111\u1ea1i di\u1ec7n cho \u0111i\u1ec3m k\u1ebft th\u00fac c\u1ee7a m\u1ed9t \u0111\u01b0\u1eddng \u0111i tr\u00ean c\u00e2y.<\/li>\n<li><strong>N\u00fat Trong (Internal Node):<\/strong> L\u00e0 b\u1ea5t k\u1ef3 n\u00fat n\u00e0o kh\u00f4ng ph\u1ea3i l\u00e0 n\u00fat g\u1ed1c v\u00e0 c\u0169ng kh\u00f4ng ph\u1ea3i l\u00e0 n\u00fat l\u00e1. N\u00f3i c\u00e1ch kh\u00e1c, \u0111\u00e2y l\u00e0 nh\u1eefng n\u00fat c\u00f3 \u00edt nh\u1ea5t m\u1ed9t n\u00fat con v\u00e0 c\u0169ng c\u00f3 m\u1ed9t n\u00fat cha.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Quan-he-giua-cac-Nut-Nut-Cha-Parent-Nut-Con-Child-Nut-Anh-Em-Sibling\"><\/span>Quan h\u1ec7 gi\u1eefa c\u00e1c N\u00fat: N\u00fat Cha (Parent), N\u00fat Con (Child), N\u00fat Anh Em (Sibling)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>M\u1ed1i quan h\u1ec7 ph\u00e2n c\u1ea5p trong c\u00e2y \u0111\u01b0\u1ee3c m\u00f4 t\u1ea3 qua c\u00e1c thu\u1eadt ng\u1eef sau:<\/p>\n<ul>\n<li><strong>N\u00fat Cha (Parent Node):<\/strong> M\u1ed9t n\u00fat A \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 n\u00fat cha c\u1ee7a n\u00fat B n\u1ebfu c\u00f3 m\u1ed9t c\u1ea1nh n\u1ed1i tr\u1ef1c ti\u1ebfp t\u1eeb A xu\u1ed1ng B. M\u1ed7i n\u00fat (tr\u1eeb n\u00fat g\u1ed1c) ch\u1ec9 c\u00f3 duy nh\u1ea5t m\u1ed9t n\u00fat cha.<\/li>\n<li><strong>N\u00fat Con (Child Node):<\/strong> Ng\u01b0\u1ee3c l\u1ea1i v\u1edbi n\u00fat cha, n\u00fat B \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 n\u00fat con c\u1ee7a n\u00fat A n\u1ebfu c\u00f3 c\u1ea1nh n\u1ed1i t\u1eeb A xu\u1ed1ng B. M\u1ed9t n\u00fat cha c\u00f3 th\u1ec3 c\u00f3 m\u1ed9t ho\u1eb7c nhi\u1ec1u n\u00fat con.<\/li>\n<li><strong>N\u00fat Anh Em (Sibling Nodes):<\/strong> L\u00e0 c\u00e1c n\u00fat c\u00f3 c\u00f9ng m\u1ed9t n\u00fat cha. Ch\u00fang n\u1eb1m c\u00f9ng m\u1ed9t c\u1ea5p (level) trong c\u00e2y v\u00e0 l\u00e0 con c\u1ee7a c\u00f9ng m\u1ed9t n\u00fat.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Canh-Edge\"><\/span>C\u1ea1nh (Edge)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>C\u1ea1nh (Edge)<\/strong> \u0111\u01a1n gi\u1ea3n l\u00e0 \u0111\u01b0\u1eddng n\u1ed1i tr\u1ef1c ti\u1ebfp gi\u1eefa hai n\u00fat, c\u1ee5 th\u1ec3 l\u00e0 gi\u1eefa m\u1ed9t n\u00fat cha v\u00e0 m\u1ed9t n\u00fat con c\u1ee7a n\u00f3. C\u1ea1nh bi\u1ec3u di\u1ec5n m\u1ed1i quan h\u1ec7 tr\u1ef1c thu\u1ed9c gi\u1eefa hai n\u00fat n\u00e0y. S\u1ed1 c\u1ea1nh trong m\u1ed9t c\u00e2y lu\u00f4n b\u1eb1ng s\u1ed1 n\u00fat tr\u1eeb \u0111i 1 (Edges = Nodes &#8211; 1).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Duong-di-Path-Chieu-dai-duong-di-Path-Length\"><\/span>\u0110\u01b0\u1eddng \u0111i (Path), Chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i (Path Length)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>\u0110\u01b0\u1eddng \u0111i (Path):<\/strong> L\u00e0 m\u1ed9t chu\u1ed7i c\u00e1c n\u00fat li\u00ean ti\u1ebfp \u0111\u01b0\u1ee3c n\u1ed1i v\u1edbi nhau b\u1eb1ng c\u00e1c c\u1ea1nh, b\u1eaft \u0111\u1ea7u t\u1eeb m\u1ed9t n\u00fat g\u1ed1c (th\u01b0\u1eddng l\u00e0 n\u00fat g\u1ed1c c\u1ee7a c\u00e2y ho\u1eb7c c\u00e2y con) \u0111\u1ebfn m\u1ed9t n\u00fat \u0111\u00edch. V\u00ed d\u1ee5: \u0111\u01b0\u1eddng \u0111i t\u1eeb n\u00fat g\u1ed1c A \u0111\u1ebfn n\u00fat l\u00e1 E c\u00f3 th\u1ec3 l\u00e0 A -&gt; B -&gt; D -&gt; E.<\/li>\n<li><strong>Chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i (Path Length):<\/strong> L\u00e0 s\u1ed1 l\u01b0\u1ee3ng c\u1ea1nh tr\u00ean \u0111\u01b0\u1eddng \u0111i \u0111\u00f3. Trong v\u00ed d\u1ee5 tr\u00ean (A -&gt; B -&gt; D -&gt; E), c\u00f3 3 c\u1ea1nh, v\u1eady chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i l\u00e0 3.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Chieu-cao-Height-cua-Nut-va-Cay\"><\/span>Chi\u1ec1u cao (Height) c\u1ee7a N\u00fat v\u00e0 C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Chi\u1ec1u cao c\u1ee7a N\u00fat (Height of a Node):<\/strong> L\u00e0 chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i d\u00e0i nh\u1ea5t t\u1eeb n\u00fat \u0111\u00f3 \u0111\u1ebfn m\u1ed9t n\u00fat l\u00e1 thu\u1ed9c c\u00e2y con g\u1ed1c t\u1ea1i n\u00fat \u0111\u00f3. Chi\u1ec1u cao c\u1ee7a m\u1ed9t n\u00fat l\u00e1 lu\u00f4n b\u1eb1ng 0.<\/li>\n<li><strong>Chi\u1ec1u cao c\u1ee7a C\u00e2y (Height of a Tree):<\/strong> B\u1eb1ng chi\u1ec1u cao c\u1ee7a n\u00fat g\u1ed1c. N\u00f3 \u0111\u1ea1i di\u1ec7n cho chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i d\u00e0i nh\u1ea5t t\u1eeb g\u1ed1c \u0111\u1ebfn b\u1ea5t k\u1ef3 n\u00fat l\u00e1 n\u00e0o trong c\u00e2y. Chi\u1ec1u cao c\u1ee7a c\u00e2y r\u1ed7ng th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a l\u00e0 -1.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Do-sau-Depth-cua-Nut\"><\/span>\u0110\u1ed9 s\u00e2u (Depth) c\u1ee7a N\u00fat<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u0110\u1ed9 s\u00e2u (Depth) c\u1ee7a N\u00fat (c\u00f2n g\u1ecdi l\u00e0 M\u1ee9c &#8211; Level):<\/strong> L\u00e0 chi\u1ec1u d\u00e0i \u0111\u01b0\u1eddng \u0111i t\u1eeb n\u00fat g\u1ed1c c\u1ee7a c\u00e2y \u0111\u1ebfn n\u00fat \u0111\u00f3. \u0110\u1ed9 s\u00e2u c\u1ee7a n\u00fat g\u1ed1c lu\u00f4n b\u1eb1ng 0. C\u00e1c n\u00fat con tr\u1ef1c ti\u1ebfp c\u1ee7a g\u1ed1c c\u00f3 \u0111\u1ed9 s\u00e2u l\u00e0 1, v\u00e0 c\u1ee9 th\u1ebf t\u0103ng d\u1ea7n xu\u1ed1ng c\u00e1c c\u1ea5p d\u01b0\u1edbi.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bac-Degree-cua-Nut\"><\/span>B\u1eadc (Degree) c\u1ee7a N\u00fat<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>B\u1eadc (Degree) c\u1ee7a N\u00fat:<\/strong> L\u00e0 s\u1ed1 l\u01b0\u1ee3ng c\u00e2y con (ho\u1eb7c s\u1ed1 l\u01b0\u1ee3ng n\u00fat con tr\u1ef1c ti\u1ebfp) c\u1ee7a n\u00fat \u0111\u00f3. B\u1eadc c\u1ee7a m\u1ed9t n\u00fat l\u00e1 lu\u00f4n b\u1eb1ng 0. Trong c\u00e2y nh\u1ecb ph\u00e2n, b\u1eadc c\u1ee7a m\u1ecdi n\u00fat kh\u00f4ng th\u1ec3 v\u01b0\u1ee3t qu\u00e1 2.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-con-Subtree\"><\/span>C\u00e2y con (Subtree)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>C\u00e2y con (Subtree):<\/strong> L\u00e0 m\u1ed9t ph\u1ea7n c\u1ee7a c\u00e2y l\u1edbn, bao g\u1ed3m m\u1ed9t n\u00fat v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c h\u1eadu du\u1ec7 (descendants) c\u1ee7a n\u00f3. M\u1ed7i n\u00fat trong c\u00e2y (tr\u1eeb n\u00fat l\u00e1) \u0111\u1ec1u c\u00f3 th\u1ec3 coi l\u00e0 g\u1ed1c c\u1ee7a m\u1ed9t ho\u1eb7c nhi\u1ec1u c\u00e2y con. V\u00ed d\u1ee5, n\u1ebfu n\u00fat B l\u00e0 con c\u1ee7a n\u00fat g\u1ed1c A, th\u00ec B v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c n\u00fat b\u00ean d\u01b0\u1edbi B t\u1ea1o th\u00e0nh m\u1ed9t c\u00e2y con c\u1ee7a c\u00e2y g\u1ed1c A.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phan-loai-cac-cau-truc-du-lieu-Cay-pho-bien\"><\/span>Ph\u00e2n lo\u1ea1i c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u C\u00e2y ph\u1ed5 bi\u1ebfn<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Th\u1ebf gi\u1edbi c\u1ee7a c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y r\u1ea5t \u0111a d\u1ea1ng, v\u1edbi nhi\u1ec1u lo\u1ea1i c\u00e2y kh\u00e1c nhau \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1 c\u1ee5 th\u1ec3 ho\u1eb7c t\u1ed1i \u01b0u h\u00f3a cho c\u00e1c ho\u1ea1t \u0111\u1ed9ng nh\u1ea5t \u0111\u1ecbnh. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 lo\u1ea1i c\u00e2y ph\u1ed5 bi\u1ebfn nh\u1ea5t m\u00e0 b\u1ea1n n\u00ean bi\u1ebft:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-Nhi-phan-Binary-Tree-%E2%80%93-BT\"><\/span>C\u00e2y Nh\u1ecb ph\u00e2n (Binary Tree &#8211; BT)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u00e2y l\u00e0 lo\u1ea1i c\u00e2y c\u01a1 b\u1ea3n v\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t. <strong>C\u00e2y Nh\u1ecb ph\u00e2n (Binary Tree &#8211; BT)<\/strong> l\u00e0 m\u1ed9t c\u00e2y m\u00e0 m\u1ed7i n\u00fat c\u00f3 <strong>t\u1ed1i \u0111a hai n\u00fat con<\/strong>, th\u01b0\u1eddng \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 <strong>con tr\u00e1i (left child)<\/strong> v\u00e0 <strong>con ph\u1ea3i (right child)<\/strong>. M\u1ed9t n\u00fat c\u00f3 th\u1ec3 kh\u00f4ng c\u00f3 con n\u00e0o, ch\u1ec9 c\u00f3 con tr\u00e1i, ch\u1ec9 c\u00f3 con ph\u1ea3i, ho\u1eb7c c\u00f3 c\u1ea3 hai.<\/p>\n<p>C\u00e2y nh\u1ecb ph\u00e2n c\u00f3 m\u1ed9t s\u1ed1 d\u1ea1ng \u0111\u1eb7c bi\u1ec7t:<\/p>\n<ul>\n<li><strong>C\u00e2y nh\u1ecb ph\u00e2n \u0111\u1ea7y \u0111\u1ee7 (Full Binary Tree):<\/strong> M\u1ed7i n\u00fat trong c\u00e2y \u0111\u1ec1u c\u00f3 0 ho\u1eb7c 2 n\u00fat con.<\/li>\n<li><strong>C\u00e2y nh\u1ecb ph\u00e2n ho\u00e0n ch\u1ec9nh (Complete Binary Tree):<\/strong> T\u1ea5t c\u1ea3 c\u00e1c m\u1ee9c, tr\u1eeb m\u1ee9c cu\u1ed1i c\u00f9ng c\u00f3 th\u1ec3, \u0111\u1ec1u \u0111\u01b0\u1ee3c l\u1ea5p \u0111\u1ea7y ho\u00e0n to\u00e0n, v\u00e0 c\u00e1c n\u00fat \u1edf m\u1ee9c cu\u1ed1i c\u00f9ng \u0111\u01b0\u1ee3c x\u1ebfp t\u1eeb tr\u00e1i sang ph\u1ea3i. C\u1ea5u tr\u00fac n\u00e0y quan tr\u1ecdng cho C\u00e2y Heap.<\/li>\n<li><strong>C\u00e2y nh\u1ecb ph\u00e2n ho\u00e0n h\u1ea3o (Perfect Binary Tree):<\/strong> L\u00e0 c\u00e2y nh\u1ecb ph\u00e2n \u0111\u1ea7y \u0111\u1ee7 m\u00e0 t\u1ea5t c\u1ea3 c\u00e1c n\u00fat l\u00e1 \u0111\u1ec1u \u1edf c\u00f9ng m\u1ed9t m\u1ee9c (\u0111\u1ed9 s\u00e2u).<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Cay-Nhi-phan-Tim-kiem-Binary-Search-Tree-%E2%80%93-BST\"><\/span>C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm (Binary Search Tree &#8211; BST)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm (Binary Search Tree &#8211; BST)<\/strong> l\u00e0 m\u1ed9t lo\u1ea1i c\u00e2y nh\u1ecb ph\u00e2n \u0111\u1eb7c bi\u1ec7t v\u1edbi m\u1ed9t thu\u1ed9c t\u00ednh th\u1ee9 t\u1ef1 quan tr\u1ecdng:<\/p>\n<ul>\n<li>V\u1edbi m\u1ecdi n\u00fat trong c\u00e2y, t\u1ea5t c\u1ea3 c\u00e1c kh\u00f3a (keys) trong <strong>c\u00e2y con tr\u00e1i<\/strong> c\u1ee7a n\u00f3 \u0111\u1ec1u <strong>nh\u1ecf h\u01a1n<\/strong> kh\u00f3a c\u1ee7a n\u00fat \u0111\u00f3.<\/li>\n<li>T\u1ea5t c\u1ea3 c\u00e1c kh\u00f3a trong <strong>c\u00e2y con ph\u1ea3i<\/strong> c\u1ee7a n\u00f3 \u0111\u1ec1u <strong>l\u1edbn h\u01a1n<\/strong> (ho\u1eb7c b\u1eb1ng, t\u00f9y quy \u01b0\u1edbc) kh\u00f3a c\u1ee7a n\u00fat \u0111\u00f3.<\/li>\n<li>C\u1ea3 c\u00e2y con tr\u00e1i v\u00e0 c\u00e2y con ph\u1ea3i c\u0169ng \u0111\u1ec1u ph\u1ea3i l\u00e0 c\u00e1c c\u00e2y nh\u1ecb ph\u00e2n t\u00ecm ki\u1ebfm.<\/li>\n<\/ul>\n<p>Thu\u1ed9c t\u00ednh n\u00e0y gi\u00fap vi\u1ec7c <strong>t\u00ecm ki\u1ebfm (searching)<\/strong> m\u1ed9t ph\u1ea7n t\u1eed trong BST tr\u1edf n\u00ean r\u1ea5t hi\u1ec7u qu\u1ea3. B\u1eaft \u0111\u1ea7u t\u1eeb g\u1ed1c, ta so s\u00e1nh kh\u00f3a c\u1ea7n t\u00ecm v\u1edbi kh\u00f3a c\u1ee7a n\u00fat hi\u1ec7n t\u1ea1i. N\u1ebfu nh\u1ecf h\u01a1n, ta \u0111i sang tr\u00e1i; n\u1ebfu l\u1edbn h\u01a1n, ta \u0111i sang ph\u1ea3i. Qu\u00e1 tr\u00ecnh n\u00e0y l\u1eb7p l\u1ea1i cho \u0111\u1ebfn khi t\u00ecm th\u1ea5y n\u00fat ho\u1eb7c \u0111i \u0111\u1ebfn m\u1ed9t v\u1ecb tr\u00ed null (kh\u00f4ng t\u00ecm th\u1ea5y).<\/p>\n<p>Tuy nhi\u00ean, hi\u1ec7u qu\u1ea3 c\u1ee7a BST ph\u1ee5 thu\u1ed9c v\u00e0o h\u00ecnh d\u1ea1ng c\u1ee7a c\u00e2y. Trong tr\u01b0\u1eddng h\u1ee3p x\u1ea5u nh\u1ea5t (v\u00ed d\u1ee5: th\u00eam c\u00e1c ph\u1ea7n t\u1eed \u0111\u00e3 s\u1eafp x\u1ebfp t\u0103ng d\u1ea7n), c\u00e2y c\u00f3 th\u1ec3 b\u1ecb <strong>suy bi\u1ebfn (degenerate)<\/strong> th\u00e0nh m\u1ed9t danh s\u00e1ch li\u00ean k\u1ebft, khi\u1ebfn thao t\u00e1c t\u00ecm ki\u1ebfm m\u1ea5t th\u1eddi gian O(n).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-Nhi-phan-Tim-kiem-Can-bang-Balanced-BST\"><\/span>C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm C\u00e2n b\u1eb1ng (Balanced BST)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u1ec3 kh\u1eafc ph\u1ee5c nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a BST th\u00f4ng th\u01b0\u1eddng (nguy c\u01a1 suy bi\u1ebfn), ng\u01b0\u1eddi ta \u0111\u00e3 ph\u00e1t tri\u1ec3n c\u00e1c lo\u1ea1i <strong>C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm C\u00e2n b\u1eb1ng (Balanced BST)<\/strong>. M\u1ee5c ti\u00eau c\u1ee7a ch\u00fang l\u00e0 duy tr\u00ec chi\u1ec1u cao c\u1ee7a c\u00e2y \u1edf m\u1ee9c th\u1ea5p nh\u1ea5t c\u00f3 th\u1ec3 (g\u1ea7n v\u1edbi log n) ngay c\u1ea3 khi th\u00eam ho\u1eb7c x\u00f3a c\u00e1c n\u00fat, \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t O(log n) cho c\u00e1c thao t\u00e1c ch\u00ednh.<\/p>\n<h4>C\u00e2y AVL (AVL Tree)<\/h4>\n<p><strong>C\u00e2y AVL (AVL Tree)<\/strong>, \u0111\u1eb7t t\u00ean theo hai nh\u00e0 ph\u00e1t minh Adelson-Velsky v\u00e0 Landis, l\u00e0 c\u00e2y BST t\u1ef1 c\u00e2n b\u1eb1ng \u0111\u1ea7u ti\u00ean. N\u00f3 duy tr\u00ec t\u00ednh c\u00e2n b\u1eb1ng b\u1eb1ng c\u00e1ch \u0111\u1ea3m b\u1ea3o r\u1eb1ng t\u1ea1i m\u1ecdi n\u00fat, chi\u1ec1u cao c\u1ee7a c\u00e2y con tr\u00e1i v\u00e0 c\u00e2y con ph\u1ea3i <strong>ch\u00eanh l\u1ec7ch nhau kh\u00f4ng qu\u00e1 1<\/strong>. Gi\u00e1 tr\u1ecb ch\u00eanh l\u1ec7ch n\u00e0y g\u1ecdi l\u00e0 <strong>h\u1ec7 s\u1ed1 c\u00e2n b\u1eb1ng (balance factor)<\/strong>.<\/p>\n<p>Khi th\u00eam ho\u1eb7c x\u00f3a m\u1ed9t n\u00fat c\u00f3 th\u1ec3 l\u00e0m m\u1ea5t c\u00e2n b\u1eb1ng (h\u1ec7 s\u1ed1 c\u00e2n b\u1eb1ng &gt; 1 ho\u1eb7c &lt; -1 t\u1ea1i m\u1ed9t n\u00fat n\u00e0o \u0111\u00f3), c\u00e2y AVL s\u1ebd t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n c\u00e1c <strong>ph\u00e9p xoay (rotations)<\/strong> &#8211; c\u00e1c thao t\u00e1c s\u1eafp x\u1ebfp l\u1ea1i c\u1ea5u tr\u00fac c\u00e2y c\u1ee5c b\u1ed9 &#8211; \u0111\u1ec3 kh\u00f4i ph\u1ee5c l\u1ea1i t\u00ednh c\u00e2n b\u1eb1ng m\u00e0 v\u1eabn gi\u1eef nguy\u00ean thu\u1ed9c t\u00ednh BST. C\u00f3 4 lo\u1ea1i ph\u00e9p xoay c\u01a1 b\u1ea3n: Xoay tr\u00e1i \u0111\u01a1n, Xoay ph\u1ea3i \u0111\u01a1n, Xoay k\u00e9p Tr\u00e1i-Ph\u1ea3i, v\u00e0 Xoay k\u00e9p Ph\u1ea3i-Tr\u00e1i.<\/p>\n<h4>C\u00e2y \u0110\u1ecf \u0110en (Red-Black Tree)<\/h4>\n<p><strong>C\u00e2y \u0110\u1ecf \u0110en (Red-Black Tree)<\/strong> l\u00e0 m\u1ed9t lo\u1ea1i c\u00e2y BST t\u1ef1 c\u00e2n b\u1eb1ng kh\u00e1c, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i trong th\u1ef1c t\u1ebf (v\u00ed d\u1ee5: trong <code>std::map<\/code> v\u00e0 <code>std::set<\/code> c\u1ee7a C++, <code>TreeMap<\/code> v\u00e0 <code>TreeSet<\/code> c\u1ee7a <a href=\"https:\/\/interdata.vn\/blog\/ngon-ngu-lap-trinh-java\/\">Java<\/a>). N\u00f3 \u0111\u1ea3m b\u1ea3o c\u00e2n b\u1eb1ng b\u1eb1ng c\u00e1ch tu\u00e2n th\u1ee7 m\u1ed9t b\u1ed9 quy t\u1eafc ph\u1ee9c t\u1ea1p h\u01a1n li\u00ean quan \u0111\u1ebfn vi\u1ec7c t\u00f4 m\u00e0u cho m\u1ed7i n\u00fat l\u00e0 <strong>\u0110\u1ecf (Red)<\/strong> ho\u1eb7c <strong>\u0110en (Black)<\/strong>:<\/p>\n<ol>\n<li>M\u1ed7i n\u00fat l\u00e0 \u0110\u1ecf ho\u1eb7c \u0110en.<\/li>\n<li>N\u00fat g\u1ed1c lu\u00f4n l\u00e0 \u0110en.<\/li>\n<li>M\u1ecdi n\u00fat l\u00e1 (th\u01b0\u1eddng l\u00e0 c\u00e1c n\u00fat null t\u01b0\u1ee3ng tr\u01b0ng) \u0111\u1ec1u l\u00e0 \u0110en.<\/li>\n<li>N\u1ebfu m\u1ed9t n\u00fat l\u00e0 \u0110\u1ecf, th\u00ec c\u1ea3 hai con c\u1ee7a n\u00f3 ph\u1ea3i l\u00e0 \u0110en. (Kh\u00f4ng c\u00f3 hai n\u00fat \u0110\u1ecf li\u00ean ti\u1ebfp tr\u00ean m\u1ed9t \u0111\u01b0\u1eddng \u0111i t\u1eeb g\u1ed1c \u0111\u1ebfn l\u00e1).<\/li>\n<li>M\u1ecdi \u0111\u01b0\u1eddng \u0111i \u0111\u01a1n gi\u1ea3n t\u1eeb m\u1ed9t n\u00fat b\u1ea5t k\u1ef3 \u0111\u1ebfn c\u00e1c n\u00fat l\u00e1 h\u1eadu du\u1ec7 c\u1ee7a n\u00f3 \u0111\u1ec1u ch\u1ee9a c\u00f9ng m\u1ed9t s\u1ed1 l\u01b0\u1ee3ng n\u00fat \u0110en (Black-Height).<\/li>\n<\/ol>\n<p>C\u00e1c quy t\u1eafc n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng \u0111\u01b0\u1eddng \u0111i d\u00e0i nh\u1ea5t t\u1eeb g\u1ed1c \u0111\u1ebfn l\u00e1 kh\u00f4ng bao gi\u1edd d\u00e0i h\u01a1n g\u1ea5p \u0111\u00f4i \u0111\u01b0\u1eddng \u0111i ng\u1eafn nh\u1ea5t, gi\u1eef cho c\u00e2y t\u01b0\u01a1ng \u0111\u1ed1i c\u00e2n b\u1eb1ng v\u00e0 \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t O(log n) cho c\u00e1c thao t\u00e1c. Vi\u1ec7c c\u00e2n b\u1eb1ng c\u0169ng \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua c\u00e1c ph\u00e9p xoay v\u00e0 t\u00f4 m\u00e0u l\u1ea1i (recoloring).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-Heap-Heap\"><\/span>C\u00e2y Heap (Heap)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>C\u00e2y Heap (Heap)<\/strong> l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u d\u1ef1a tr\u00ean c\u00e2y nh\u1ecb ph\u00e2n ho\u00e0n ch\u1ec9nh (complete binary tree) \u0111\u1eb7c bi\u1ec7t, th\u1ecfa m\u00e3n <strong>t\u00ednh ch\u1ea5t Heap (Heap Property)<\/strong>:<\/p>\n<ul>\n<li><strong>Max Heap:<\/strong> Kh\u00f3a c\u1ee7a m\u1ed7i n\u00fat cha lu\u00f4n <strong>l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng<\/strong> kh\u00f3a c\u1ee7a c\u00e1c n\u00fat con c\u1ee7a n\u00f3. Do \u0111\u00f3, n\u00fat g\u1ed1c lu\u00f4n ch\u1ee9a gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t.<\/li>\n<li><strong>Min Heap:<\/strong> Kh\u00f3a c\u1ee7a m\u1ed7i n\u00fat cha lu\u00f4n <strong>nh\u1ecf h\u01a1n ho\u1eb7c b\u1eb1ng<\/strong> kh\u00f3a c\u1ee7a c\u00e1c n\u00fat con c\u1ee7a n\u00f3. N\u00fat g\u1ed1c ch\u1ee9a gi\u00e1 tr\u1ecb nh\u1ecf nh\u1ea5t.<\/li>\n<\/ul>\n<p>Heap th\u01b0\u1eddng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t hi\u1ec7u qu\u1ea3 b\u1eb1ng m\u1ea3ng thay v\u00ec d\u00f9ng con tr\u1ecf. Do t\u00ednh ch\u1ea5t c\u00e2y nh\u1ecb ph\u00e2n ho\u00e0n ch\u1ec9nh, v\u1ecb tr\u00ed c\u1ee7a n\u00fat cha v\u00e0 c\u00e1c n\u00fat con c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng t\u00ednh to\u00e1n qua ch\u1ec9 s\u1ed1 m\u1ea3ng. Heap l\u00e0 n\u1ec1n t\u1ea3ng c\u1ee7a thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp <strong>Heap Sort<\/strong> v\u00e0 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u <strong>H\u00e0ng \u0111\u1ee3i \u01afu ti\u00ean (Priority <a href=\"https:\/\/interdata.vn\/blog\/queue-la-gi\/\">Queue<\/a>)<\/strong>, n\u01a1i c\u1ea7n l\u1ea5y ra ph\u1ea7n t\u1eed c\u00f3 \u0111\u1ed9 \u01b0u ti\u00ean cao nh\u1ea5t (l\u1edbn nh\u1ea5t ho\u1eb7c nh\u1ecf nh\u1ea5t) m\u1ed9t c\u00e1ch nhanh ch\u00f3ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-B-va-B-B-Tree-B-Tree\"><\/span>C\u00e2y B v\u00e0 B+ (B-Tree &amp; B+ Tree)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kh\u00e1c v\u1edbi c\u00e1c c\u00e2y nh\u1ecb ph\u00e2n, <strong>C\u00e2y B (B-Tree)<\/strong> v\u00e0 <strong>C\u00e2y B+ (B+ Tree)<\/strong> l\u00e0 c\u00e1c <strong>c\u00e2y t\u00ecm ki\u1ebfm \u0111a ph\u00e2n (multi-way search trees)<\/strong> t\u1ef1 c\u00e2n b\u1eb1ng. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 m\u1ed7i n\u00fat c\u00f3 th\u1ec3 c\u00f3 <strong>nhi\u1ec1u h\u01a1n hai n\u00fat con<\/strong> v\u00e0 ch\u1ee9a <strong>nhi\u1ec1u kh\u00f3a<\/strong> trong c\u00f9ng m\u1ed9t n\u00fat.<\/p>\n<p>\u0110\u1eb7c \u0111i\u1ec3m n\u00e0y l\u00e0m cho B-Tree v\u00e0 B+ Tree r\u1ea5t ph\u00f9 h\u1ee3p cho c\u00e1c h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef d\u1eef li\u1ec7u tr\u00ean <strong>\u0111\u0129a c\u1ee9ng (disk-based storage)<\/strong> nh\u01b0 <strong>c\u01a1 s\u1edf d\u1eef li\u1ec7u (databases)<\/strong> v\u00e0 <strong>h\u1ec7 th\u1ed1ng t\u1ec7p (file systems)<\/strong>. Vi\u1ec7c \u0111\u1ecdc d\u1eef li\u1ec7u t\u1eeb \u0111\u0129a r\u1ea5t ch\u1eadm so v\u1edbi t\u1eeb b\u1ed9 nh\u1edb ch\u00ednh (<a href=\"https:\/\/interdata.vn\/blog\/ram-server\/\">RAM<\/a>). B-Tree v\u00e0 B+ Tree gi\u1ea3m thi\u1ec3u s\u1ed1 l\u1ea7n truy c\u1eadp \u0111\u0129a b\u1eb1ng c\u00e1ch l\u01b0u tr\u1eef nhi\u1ec1u kh\u00f3a trong m\u1ed9t n\u00fat (t\u01b0\u01a1ng \u1ee9ng v\u1edbi m\u1ed9t kh\u1ed1i \u0111\u0129a &#8211; disk block), l\u00e0m cho c\u00e2y &#8220;r\u1ed9ng&#8221; v\u00e0 &#8220;n\u00f4ng&#8221; h\u01a1n (chi\u1ec1u cao th\u1ea5p).<\/p>\n<p>\u0110i\u1ec3m kh\u00e1c bi\u1ec7t ch\u00ednh gi\u1eefa B-Tree v\u00e0 B+ Tree l\u00e0:<\/p>\n<ul>\n<li><strong>B-Tree:<\/strong> L\u01b0u c\u1ea3 kh\u00f3a v\u00e0 d\u1eef li\u1ec7u (ho\u1eb7c con tr\u1ecf t\u1edbi d\u1eef li\u1ec7u) \u1edf c\u1ea3 n\u00fat trong v\u00e0 n\u00fat l\u00e1.<\/li>\n<li><strong>B+ Tree:<\/strong> Ch\u1ec9 l\u01b0u kh\u00f3a \u1edf c\u00e1c n\u00fat trong (\u0111\u1ec3 \u0111i\u1ec1u h\u01b0\u1edbng), c\u00f2n t\u1ea5t c\u1ea3 c\u00e1c kh\u00f3a v\u00e0 d\u1eef li\u1ec7u (ho\u1eb7c con tr\u1ecf d\u1eef li\u1ec7u) \u0111\u1ec1u n\u1eb1m \u1edf c\u00e1c n\u00fat l\u00e1. C\u00e1c n\u00fat l\u00e1 th\u01b0\u1eddng \u0111\u01b0\u1ee3c li\u00ean k\u1ebft v\u1edbi nhau b\u1eb1ng danh s\u00e1ch li\u00ean k\u1ebft \u0111\u1ec3 h\u1ed7 tr\u1ee3 duy\u1ec7t tu\u1ea7n t\u1ef1 (range queries) hi\u1ec7u qu\u1ea3. Do \u0111\u00f3, B+ Tree th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u01b0u ti\u00ean s\u1eed d\u1ee5ng trong c\u00e1c <a href=\"https:\/\/interdata.vn\/blog\/he-quan-tri-co-so-du-lieu-la-gi\/\">h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/a>.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Cay-Trie-Prefix-Tree-Radix-Tree\"><\/span>C\u00e2y Trie (Prefix Tree \/ Radix Tree)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>C\u00e2y Trie (ph\u00e1t \u00e2m l\u00e0 &#8220;try&#8221;)<\/strong>, c\u00f2n g\u1ecdi l\u00e0 <strong>C\u00e2y Ti\u1ec1n t\u1ed1 (Prefix Tree)<\/strong> ho\u1eb7c <strong>C\u00e2y C\u01a1 s\u1ed1 (Radix Tree)<\/strong>, l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac c\u00e2y \u0111\u1eb7c bi\u1ec7t d\u00f9ng \u0111\u1ec3 l\u01b0u tr\u1eef v\u00e0 t\u00ecm ki\u1ebfm hi\u1ec7u qu\u1ea3 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c chu\u1ed7i (strings). M\u1ed7i n\u00fat trong Trie \u0111\u1ea1i di\u1ec7n cho m\u1ed9t ti\u1ec1n t\u1ed1 chung c\u1ee7a c\u00e1c chu\u1ed7i. C\u00e1c c\u1ea1nh th\u01b0\u1eddng \u0111\u01b0\u1ee3c g\u00e1n nh\u00e3n b\u1eb1ng c\u00e1c k\u00fd t\u1ef1.<\/p>\n<p>\u0110\u01b0\u1eddng \u0111i t\u1eeb g\u1ed1c \u0111\u1ebfn m\u1ed9t n\u00fat n\u00e0o \u0111\u00f3 s\u1ebd t\u1ea1o th\u00e0nh m\u1ed9t ti\u1ec1n t\u1ed1. N\u1ebfu n\u00fat \u0111\u00f3 \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u l\u00e0 k\u1ebft th\u00fac c\u1ee7a m\u1ed9t t\u1eeb, th\u00ec ti\u1ec1n t\u1ed1 \u0111\u00f3 ch\u00ednh l\u00e0 m\u1ed9t t\u1eeb trong t\u1eadp h\u1ee3p. Trie r\u1ea5t hi\u1ec7u qu\u1ea3 cho c\u00e1c b\u00e0i to\u00e1n li\u00ean quan \u0111\u1ebfn ti\u1ec1n t\u1ed1, v\u00ed d\u1ee5 nh\u01b0:<\/p>\n<ul>\n<li>Ki\u1ec3m tra xem m\u1ed9t chu\u1ed7i c\u00f3 t\u1ed3n t\u1ea1i trong t\u1eeb \u0111i\u1ec3n kh\u00f4ng.<\/li>\n<li>T\u00ecm t\u1ea5t c\u1ea3 c\u00e1c t\u1eeb c\u00f3 c\u00f9ng m\u1ed9t ti\u1ec1n t\u1ed1 (\u1ee9ng d\u1ee5ng trong <strong>g\u1ee3i \u00fd t\u1eeb kh\u00f3a &#8211; autocomplete<\/strong> ho\u1eb7c <strong>t\u1ef1 \u0111\u1ed9ng ho\u00e0n th\u00e0nh &#8211; auto-suggestion<\/strong>).<\/li>\n<li>S\u1eafp x\u1ebfp t\u1eeb \u0111i\u1ec3n.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Cac-thao-tac-phep-toan-co-ban-tren-Cay\"><\/span>C\u00e1c thao t\u00e1c (ph\u00e9p to\u00e1n) c\u01a1 b\u1ea3n tr\u00ean C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sau khi hi\u1ec3u v\u1ec1 c\u1ea5u tr\u00fac v\u00e0 c\u00e1c lo\u1ea1i c\u00e2y, b\u01b0\u1edbc ti\u1ebfp theo l\u00e0 t\u00ecm hi\u1ec3u c\u00e1c thao t\u00e1c c\u01a1 b\u1ea3n m\u00e0 ch\u00fang ta c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n tr\u00ean ch\u00fang. C\u00e1c thao t\u00e1c n\u00e0y l\u00e0 n\u1ec1n t\u1ea3ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c thu\u1eadt to\u00e1n ph\u1ee9c t\u1ea1p h\u01a1n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-02.jpg\" alt=\"C\u1ea5u tr\u00fac d\u1eef li\u1ec7u tree (c\u00e2y) 02\" width=\"750\" height=\"439\" class=\"aligncenter size-full wp-image-27380\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-02.jpg 750w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-02-300x176.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Duyet-cay-Tree-Traversal-%E2%80%93-Cach-%E2%80%9Ctham%E2%80%9D-cac-nut\"><\/span>Duy\u1ec7t c\u00e2y (Tree Traversal) &#8211; C\u00e1ch &#8220;th\u0103m&#8221; c\u00e1c n\u00fat<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Duy\u1ec7t c\u00e2y (Tree Traversal)<\/strong> l\u00e0 qu\u00e1 tr\u00ecnh &#8220;th\u0103m&#8221; (visit) t\u1ea5t c\u1ea3 c\u00e1c n\u00fat trong c\u00e2y \u0111\u00fang m\u1ed9t l\u1ea7n theo m\u1ed9t th\u1ee9 t\u1ef1 c\u00f3 h\u1ec7 th\u1ed1ng. Vi\u1ec7c &#8220;th\u0103m&#8221; c\u00f3 th\u1ec3 l\u00e0 in gi\u00e1 tr\u1ecb c\u1ee7a n\u00fat, th\u1ef1c hi\u1ec7n m\u1ed9t ph\u00e9p to\u00e1n n\u00e0o \u0111\u00f3 tr\u00ean n\u00fat, ho\u1eb7c \u0111\u01a1n gi\u1ea3n l\u00e0 \u0111\u00e1nh d\u1ea5u n\u00fat \u0111\u00e3 \u0111\u01b0\u1ee3c gh\u00e9 qua. C\u00f3 hai chi\u1ebfn l\u01b0\u1ee3c duy\u1ec7t c\u00e2y ch\u00ednh:<\/p>\n<h4>Duy\u1ec7t theo chi\u1ec1u s\u00e2u (Depth-First Search &#8211; DFS)<\/h4>\n<p>DFS \u01b0u ti\u00ean \u0111i s\u00e2u xu\u1ed1ng m\u1ed9t nh\u00e1nh con tr\u01b0\u1edbc khi quay l\u1ea1i v\u00e0 \u0111i sang nh\u00e1nh kh\u00e1c. C\u00f3 ba c\u00e1ch duy\u1ec7t DFS ph\u1ed5 bi\u1ebfn tr\u00ean c\u00e2y nh\u1ecb ph\u00e2n, th\u01b0\u1eddng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t b\u1eb1ng <strong><a href=\"https:\/\/interdata.vn\/blog\/de-quy-la-gi\/\">\u0111\u1ec7 quy<\/a> (recursion)<\/strong> ho\u1eb7c s\u1eed d\u1ee5ng <strong>ng\u0103n x\u1ebfp (<a href=\"https:\/\/interdata.vn\/blog\/stack-la-gi\/\">stack<\/a>)<\/strong>:<\/p>\n<ol>\n<li><strong>Preorder (NLR &#8211; Node Left Right):<\/strong> Th\u0103m n\u00fat g\u1ed1c (N) -&gt; Duy\u1ec7t c\u00e2y con tr\u00e1i (L) -&gt; Duy\u1ec7t c\u00e2y con ph\u1ea3i (R). Th\u1ee9 t\u1ef1 n\u00e0y h\u1eefu \u00edch khi c\u1ea7n sao ch\u00e9p c\u00e2y ho\u1eb7c l\u1ea5y bi\u1ec3u th\u1ee9c ti\u1ec1n t\u1ed1.\n<ul>\n<li><i>V\u00ed d\u1ee5:<\/i> V\u1edbi c\u00e2y g\u1ed1c A, con tr\u00e1i B, con ph\u1ea3i C. Th\u1ee9 t\u1ef1 duy\u1ec7t: A, B, C.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Inorder (LNR &#8211; Left Node Right):<\/strong> Duy\u1ec7t c\u00e2y con tr\u00e1i (L) -&gt; Th\u0103m n\u00fat g\u1ed1c (N) -&gt; Duy\u1ec7t c\u00e2y con ph\u1ea3i (R). Tr\u00ean c\u00e2y BST, duy\u1ec7t Inorder s\u1ebd cho ra c\u00e1c kh\u00f3a theo th\u1ee9 t\u1ef1 t\u0103ng d\u1ea7n.\n<ul>\n<li><i>V\u00ed d\u1ee5:<\/i> V\u1edbi c\u00e2y g\u1ed1c A, con tr\u00e1i B, con ph\u1ea3i C. Th\u1ee9 t\u1ef1 duy\u1ec7t: B, A, C.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Postorder (LRN &#8211; Left Right Node):<\/strong> Duy\u1ec7t c\u00e2y con tr\u00e1i (L) -&gt; Duy\u1ec7t c\u00e2y con ph\u1ea3i (R) -&gt; Th\u0103m n\u00fat g\u1ed1c (N). Th\u1ee9 t\u1ef1 n\u00e0y h\u1eefu \u00edch khi c\u1ea7n x\u00f3a c\u00e2y (x\u00f3a con tr\u01b0\u1edbc khi x\u00f3a cha) ho\u1eb7c l\u1ea5y bi\u1ec3u th\u1ee9c h\u1eadu t\u1ed1.\n<ul>\n<li><i>V\u00ed d\u1ee5:<\/i> V\u1edbi c\u00e2y g\u1ed1c A, con tr\u00e1i B, con ph\u1ea3i C. Th\u1ee9 t\u1ef1 duy\u1ec7t: B, C, A.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>Duy\u1ec7t theo chi\u1ec1u r\u1ed9ng (Breadth-First Search &#8211; BFS)<\/h4>\n<p><strong>Duy\u1ec7t theo chi\u1ec1u r\u1ed9ng (BFS)<\/strong>, c\u00f2n g\u1ecdi l\u00e0 duy\u1ec7t theo m\u1ee9c (Level Order Traversal), th\u0103m t\u1ea5t c\u1ea3 c\u00e1c n\u00fat \u1edf c\u00f9ng m\u1ed9t m\u1ee9c (\u0111\u1ed9 s\u00e2u) tr\u01b0\u1edbc khi chuy\u1ec3n xu\u1ed1ng m\u1ee9c ti\u1ebfp theo. BFS th\u01b0\u1eddng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t s\u1eed d\u1ee5ng <strong>h\u00e0ng \u0111\u1ee3i (queue)<\/strong>.<\/p>\n<ul>\n<li><strong>Quy t\u1eafc:<\/strong> B\u1eaft \u0111\u1ea7u t\u1eeb n\u00fat g\u1ed1c, \u0111\u01b0a g\u1ed1c v\u00e0o h\u00e0ng \u0111\u1ee3i. Ch\u1eebng n\u00e0o h\u00e0ng \u0111\u1ee3i c\u00f2n ph\u1ea7n t\u1eed, l\u1ea5y m\u1ed9t n\u00fat ra, &#8220;th\u0103m&#8221; n\u00fat \u0111\u00f3, sau \u0111\u00f3 l\u1ea7n l\u01b0\u1ee3t \u0111\u01b0a c\u00e1c n\u00fat con (n\u1ebfu c\u00f3) c\u1ee7a n\u00f3 v\u00e0o cu\u1ed1i h\u00e0ng \u0111\u1ee3i (th\u01b0\u1eddng l\u00e0 t\u1eeb tr\u00e1i sang ph\u1ea3i).<\/li>\n<\/ul>\n<p>BFS h\u1eefu \u00edch khi c\u1ea7n t\u00ecm \u0111\u01b0\u1eddng \u0111i ng\u1eafn nh\u1ea5t t\u1eeb g\u1ed1c \u0111\u1ebfn m\u1ed9t n\u00fat n\u00e0o \u0111\u00f3 (t\u00ednh theo s\u1ed1 c\u1ea1nh) ho\u1eb7c khi c\u1ea7n x\u1eed l\u00fd c\u00e1c n\u00fat theo t\u1eebng c\u1ea5p \u0111\u1ed9.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tim-kiem-Searching-tren-Cay\"><\/span>T\u00ecm ki\u1ebfm (Searching) tr\u00ean C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Thao t\u00e1c t\u00ecm ki\u1ebfm l\u00e0 x\u00e1c \u0111\u1ecbnh xem m\u1ed9t gi\u00e1 tr\u1ecb (kh\u00f3a) c\u1ee5 th\u1ec3 c\u00f3 t\u1ed3n t\u1ea1i trong c\u00e2y hay kh\u00f4ng, v\u00e0 n\u1ebfu c\u00f3 th\u00ec n\u00f3 n\u1eb1m \u1edf \u0111\u00e2u. C\u00e1ch t\u00ecm ki\u1ebfm ph\u1ee5 thu\u1ed9c v\u00e0o lo\u1ea1i c\u00e2y:<\/p>\n<ul>\n<li><strong>Tr\u00ean c\u00e2y th\u00f4ng th\u01b0\u1eddng (kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1):<\/strong> Th\u01b0\u1eddng ph\u1ea3i duy\u1ec7t c\u00e2y (DFS ho\u1eb7c BFS) v\u00e0 so s\u00e1nh gi\u00e1 tr\u1ecb t\u1ea1i m\u1ed7i n\u00fat \u0111\u01b0\u1ee3c th\u0103m. \u0110\u1ed9 ph\u1ee9c t\u1ea1p l\u00e0 O(n).<\/li>\n<li><strong>Tr\u00ean C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm (BST):<\/strong> T\u1eadn d\u1ee5ng thu\u1ed9c t\u00ednh th\u1ee9 t\u1ef1 \u0111\u1ec3 t\u00ecm ki\u1ebfm hi\u1ec7u qu\u1ea3 h\u01a1n (O(h), v\u1edbi h l\u00e0 chi\u1ec1u cao c\u00e2y, l\u00fd t\u01b0\u1edfng l\u00e0 O(log n) cho c\u00e2y c\u00e2n b\u1eb1ng).\n<ol>\n<li>B\u1eaft \u0111\u1ea7u t\u1eeb g\u1ed1c.<\/li>\n<li>So s\u00e1nh gi\u00e1 tr\u1ecb c\u1ea7n t\u00ecm (target) v\u1edbi gi\u00e1 tr\u1ecb n\u00fat hi\u1ec7n t\u1ea1i (current).<\/li>\n<li>N\u1ebfu target == current: T\u00ecm th\u1ea5y.<\/li>\n<li>N\u1ebfu target &lt; current: \u0110i sang c\u00e2y con tr\u00e1i, l\u1eb7p l\u1ea1i b\u01b0\u1edbc 2.<\/li>\n<li>N\u1ebfu target &gt; current: \u0110i sang c\u00e2y con ph\u1ea3i, l\u1eb7p l\u1ea1i b\u01b0\u1edbc 2.<\/li>\n<li>N\u1ebfu g\u1eb7p n\u00fat null: Kh\u00f4ng t\u00ecm th\u1ea5y.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Them-nut-Insertion-vao-Cay\"><\/span>Th\u00eam n\u00fat (Insertion) v\u00e0o C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Thao t\u00e1c th\u00eam m\u1ed9t n\u00fat m\u1edbi v\u00e0o c\u00e2y c\u0169ng ph\u1ee5 thu\u1ed9c v\u00e0o lo\u1ea1i c\u00e2y:<\/p>\n<ul>\n<li><strong>Tr\u00ean C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm (BST):<\/strong>\n<ol>\n<li>T\u00ecm v\u1ecb tr\u00ed th\u00edch h\u1ee3p \u0111\u1ec3 ch\u00e8n n\u00fat m\u1edbi sao cho v\u1eabn duy tr\u00ec thu\u1ed9c t\u00ednh BST. Qu\u00e1 tr\u00ecnh n\u00e0y t\u01b0\u01a1ng t\u1ef1 nh\u01b0 t\u00ecm ki\u1ebfm.<\/li>\n<li>\u0110i t\u1eeb g\u1ed1c, so s\u00e1nh gi\u00e1 tr\u1ecb c\u1ea7n ch\u00e8n v\u1edbi n\u00fat hi\u1ec7n t\u1ea1i. N\u1ebfu nh\u1ecf h\u01a1n \u0111i sang tr\u00e1i, l\u1edbn h\u01a1n \u0111i sang ph\u1ea3i, cho \u0111\u1ebfn khi g\u1eb7p m\u1ed9t v\u1ecb tr\u00ed con tr\u1ecf null.<\/li>\n<li>T\u1ea1o n\u00fat m\u1edbi v\u00e0 g\u1eafn n\u00f3 v\u00e0o v\u1ecb tr\u00ed con tr\u1ecf null \u0111\u00f3.<\/li>\n<\/ol>\n<\/li>\n<li><strong>Tr\u00ean C\u00e2y c\u00e2n b\u1eb1ng (AVL, Red-Black):<\/strong>\n<ol>\n<li>Th\u1ef1c hi\u1ec7n ch\u00e8n nh\u01b0 BST th\u00f4ng th\u01b0\u1eddng.<\/li>\n<li>Sau khi ch\u00e8n, ki\u1ec3m tra xem c\u00f3 n\u00fat n\u00e0o b\u1ecb m\u1ea5t c\u00e2n b\u1eb1ng kh\u00f4ng (d\u1ef1a tr\u00ean h\u1ec7 s\u1ed1 c\u00e2n b\u1eb1ng ho\u1eb7c quy t\u1eafc m\u00e0u).<\/li>\n<li>N\u1ebfu c\u00f3, th\u1ef1c hi\u1ec7n c\u00e1c ph\u00e9p xoay v\u00e0\/ho\u1eb7c t\u00f4 m\u00e0u l\u1ea1i c\u1ea7n thi\u1ebft \u0111\u1ec3 kh\u00f4i ph\u1ee5c t\u00ednh c\u00e2n b\u1eb1ng, b\u1eaft \u0111\u1ea7u t\u1eeb n\u00fat m\u1edbi ch\u00e8n \u0111i ng\u01b0\u1ee3c l\u00ean g\u1ed1c.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Xoa-nut-Deletion-khoi-Cay\"><\/span>X\u00f3a n\u00fat (Deletion) kh\u1ecfi C\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>X\u00f3a m\u1ed9t n\u00fat kh\u1ecfi c\u00e2y, \u0111\u1eb7c bi\u1ec7t l\u00e0 BST, l\u00e0 thao t\u00e1c ph\u1ee9c t\u1ea1p nh\u1ea5t v\u00ec c\u1ea7n \u0111\u1ea3m b\u1ea3o c\u1ea5u tr\u00fac c\u00e2y (v\u00e0 thu\u1ed9c t\u00ednh BST) v\u1eabn \u0111\u01b0\u1ee3c duy tr\u00ec sau khi x\u00f3a. C\u00f3 ba tr\u01b0\u1eddng h\u1ee3p ch\u00ednh khi x\u00f3a n\u00fat <code>X<\/code> kh\u1ecfi BST:<\/p>\n<ol>\n<li><strong>N\u00fat <\/strong><code><strong>X<\/strong><\/code><strong> l\u00e0 n\u00fat l\u00e1 (kh\u00f4ng c\u00f3 con):<\/strong> \u0110\u01a1n gi\u1ea3n ch\u1ec9 c\u1ea7n x\u00f3a n\u00fat <code>X<\/code> v\u00e0 c\u1eadp nh\u1eadt con tr\u1ecf c\u1ee7a n\u00fat cha tr\u1ecf \u0111\u1ebfn <code>X<\/code> th\u00e0nh null.<\/li>\n<li><strong>N\u00fat <\/strong><code><strong>X<\/strong><\/code><strong> c\u00f3 m\u1ed9t con:<\/strong> Thay th\u1ebf n\u00fat <code>X<\/code> b\u1eb1ng n\u00fat con duy nh\u1ea5t c\u1ee7a n\u00f3. C\u1eadp nh\u1eadt con tr\u1ecf c\u1ee7a n\u00fat cha c\u1ee7a <code>X<\/code> tr\u1ecf tr\u1ef1c ti\u1ebfp \u0111\u1ebfn n\u00fat con \u0111\u00f3.<\/li>\n<li><strong>N\u00fat <\/strong><code><strong>X<\/strong><\/code><strong> c\u00f3 hai con:<\/strong> \u0110\u00e2y l\u00e0 tr\u01b0\u1eddng h\u1ee3p ph\u1ee9c t\u1ea1p nh\u1ea5t.\n<ul>\n<li>T\u00ecm n\u00fat thay th\u1ebf ph\u00f9 h\u1ee3p cho <code>X<\/code>. C\u00f3 hai l\u1ef1a ch\u1ecdn ph\u1ed5 bi\u1ebfn:\n<ul>\n<li><strong>N\u00fat l\u1edbn nh\u1ea5t trong c\u00e2y con tr\u00e1i (Inorder Predecessor):<\/strong> \u0110i sang tr\u00e1i m\u1ed9t b\u01b0\u1edbc, sau \u0111\u00f3 \u0111i h\u1ebft sang ph\u1ea3i.<\/li>\n<li><strong>N\u00fat nh\u1ecf nh\u1ea5t trong c\u00e2y con ph\u1ea3i (Inorder Successor):<\/strong> \u0110i sang ph\u1ea3i m\u1ed9t b\u01b0\u1edbc, sau \u0111\u00f3 \u0111i h\u1ebft sang tr\u00e1i.<\/li>\n<\/ul>\n<\/li>\n<li>Sao ch\u00e9p gi\u00e1 tr\u1ecb c\u1ee7a n\u00fat thay th\u1ebf v\u00e0o n\u00fat <code>X<\/code>.<\/li>\n<li>X\u00f3a n\u00fat thay th\u1ebf kh\u1ecfi v\u1ecb tr\u00ed g\u1ed1c c\u1ee7a n\u00f3 (l\u00fac n\u00e0y b\u00e0i to\u00e1n x\u00f3a quay v\u1ec1 tr\u01b0\u1eddng h\u1ee3p 1 ho\u1eb7c 2 v\u00ec n\u00fat thay th\u1ebf ch\u1ec9 c\u00f3 t\u1ed1i \u0111a 1 con).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ul>\n<li><strong>Tr\u00ean C\u00e2y c\u00e2n b\u1eb1ng (AVL, Red-Black):<\/strong> T\u01b0\u01a1ng t\u1ef1 nh\u01b0 khi th\u00eam, sau khi th\u1ef1c hi\u1ec7n x\u00f3a theo logic BST, c\u1ea7n ki\u1ec3m tra v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c ph\u00e9p xoay\/t\u00f4 m\u00e0u l\u1ea1i \u0111\u1ec3 kh\u00f4i ph\u1ee5c t\u00ednh c\u00e2n b\u1eb1ng.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Vi-du-cai-dat-cau-truc-du-lieu-cay\"><\/span>V\u00ed d\u1ee5 c\u00e0i \u0111\u1eb7t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>L\u00fd thuy\u1ebft l\u00e0 quan tr\u1ecdng, nh\u01b0ng vi\u1ec7c th\u1ea5y code ch\u1ea1y th\u1ef1c t\u1ebf s\u1ebd gi\u00fap c\u1ee7ng c\u1ed1 hi\u1ec3u bi\u1ebft. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 v\u00ed d\u1ee5 c\u00e0i \u0111\u1eb7t \u0111\u01a1n gi\u1ea3n b\u1eb1ng ng\u00f4n ng\u1eef Python, t\u1eadp trung v\u00e0o C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm c\u01a1 b\u1ea3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-03.jpg\" alt=\"C\u1ea5u tr\u00fac d\u1eef li\u1ec7u tree (c\u00e2y) 03\" width=\"750\" height=\"405\" class=\"aligncenter size-full wp-image-27381\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-03.jpg 750w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/04\/Cau-truc-du-lieu-tree-cay-03-300x162.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cai-dat-Lop-Nut-Node-Class\"><\/span>C\u00e0i \u0111\u1eb7t L\u1edbp N\u00fat (Node Class)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u1ea7u ti\u00ean, ch\u00fang ta c\u1ea7n \u0111\u1ecbnh ngh\u0129a c\u1ea5u tr\u00fac c\u1ee7a m\u1ed9t n\u00fat trong c\u00e2y nh\u1ecb ph\u00e2n. M\u1ed7i n\u00fat s\u1ebd ch\u1ee9a d\u1eef li\u1ec7u (v\u00ed d\u1ee5: <code>key<\/code>) v\u00e0 hai con tr\u1ecf t\u1edbi n\u00fat con tr\u00e1i v\u00e0 con ph\u1ea3i.<\/p>\n<p>Python<\/p>\n<pre><code class=\"language-plaintext\">class Node:\r\n    \"\"\"\u0110\u1ea1i di\u1ec7n cho m\u1ed9t n\u00fat trong C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm.\"\"\"\r\n    def __init__(self, key):\r\n        self.key = key  # Gi\u00e1 tr\u1ecb (kh\u00f3a) c\u1ee7a n\u00fat\r\n        self.left = None  # Con tr\u1ecf t\u1edbi n\u00fat con tr\u00e1i\r\n        self.right = None # Con tr\u1ecf t\u1edbi n\u00fat con ph\u1ea3i\r\n\r\n    def __str__(self):\r\n        # H\u00e0m ti\u1ec7n \u00edch \u0111\u1ec3 in gi\u00e1 tr\u1ecb n\u00fat (cho d\u1ec5 <a href=\"https:\/\/interdata.vn\/blog\/wordpress-debug-la-gi\/\">debug<\/a>)\r\n        return str(self.key)\r\n<\/code><\/pre>\n<p>\u0110o\u1ea1n code tr\u00ean \u0111\u1ecbnh ngh\u0129a l\u1edbp <code>Node<\/code> r\u1ea5t \u0111\u01a1n gi\u1ea3n. H\u00e0m <code>__init__<\/code> kh\u1edfi t\u1ea1o m\u1ed9t n\u00fat m\u1edbi v\u1edbi <code>key<\/code> cho tr\u01b0\u1edbc, con tr\u00e1i v\u00e0 con ph\u1ea3i ban \u0111\u1ea7u l\u00e0 <code>None<\/code> (r\u1ed7ng).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cai-dat-cay-nhi-phan-tim-kiem-BST-Class-co-ban-Them-Tim-kiem\"><\/span>C\u00e0i \u0111\u1eb7t c\u00e2y nh\u1ecb ph\u00e2n t\u00ecm ki\u1ebfm (BST Class) c\u01a1 b\u1ea3n (Th\u00eam, T\u00ecm ki\u1ebfm)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>B\u00e2y gi\u1edd, ch\u00fang ta x\u00e2y d\u1ef1ng l\u1edbp <code>BinarySearchTree<\/code> s\u1eed d\u1ee5ng l\u1edbp <code>Node<\/code>. Ch\u00fang ta s\u1ebd c\u00e0i \u0111\u1eb7t ph\u01b0\u01a1ng th\u1ee9c th\u00eam (<code>insert<\/code>) v\u00e0 t\u00ecm ki\u1ebfm (<code>search<\/code>) c\u01a1 b\u1ea3n.<\/p>\n<p>Python<\/p>\n<pre><code class=\"language-plaintext\">class BinarySearchTree:\r\n    \"\"\"\u0110\u1ea1i di\u1ec7n cho m\u1ed9t C\u00e2y Nh\u1ecb ph\u00e2n T\u00ecm ki\u1ebfm.\"\"\"\r\n    def __init__(self):\r\n        self.root = None # Ban \u0111\u1ea7u c\u00e2y r\u1ed7ng, g\u1ed1c l\u00e0 None\r\n\r\n    # --- Th\u00eam n\u00fat (Insert) ---\r\n    def insert(self, key):\r\n        \"\"\"Th\u00eam m\u1ed9t kh\u00f3a m\u1edbi v\u00e0o c\u00e2y BST.\"\"\"\r\n        if self.root is None:\r\n            # N\u1ebfu c\u00e2y r\u1ed7ng, n\u00fat m\u1edbi tr\u1edf th\u00e0nh g\u1ed1c\r\n            self.root = Node(key)\r\n        else:\r\n            # G\u1ecdi h\u00e0m \u0111\u1ec7 quy h\u1ed7 tr\u1ee3 \u0111\u1ec3 t\u00ecm v\u1ecb tr\u00ed ch\u00e8n\r\n            self._insert_recursive(self.root, key)\r\n\r\n    def _insert_recursive(self, current_node, key):\r\n        \"\"\"H\u00e0m \u0111\u1ec7 quy \u0111\u1ec3 ch\u00e8n kh\u00f3a v\u00e0o c\u00e2y con g\u1ed1c t\u1ea1i current_node.\"\"\"\r\n        if key &lt; current_node.key:\r\n            # \u0110i sang tr\u00e1i\r\n            if current_node.left is None:\r\n                current_node.left = Node(key)\r\n            else:\r\n                self._insert_recursive(current_node.left, key)\r\n        elif key &gt; current_node.key:\r\n            # \u0110i sang ph\u1ea3i\r\n            if current_node.right is None:\r\n                current_node.right = Node(key)\r\n            else:\r\n                self._insert_recursive(current_node.right, key)\r\n        # else: key == current_node.key -&gt; Kh\u00f3a \u0111\u00e3 t\u1ed3n t\u1ea1i, kh\u00f4ng l\u00e0m g\u00ec c\u1ea3 (ho\u1eb7c c\u1eadp nh\u1eadt t\u00f9y y\u00eau c\u1ea7u)\r\n\r\n    # --- T\u00ecm ki\u1ebfm (Search) ---\r\n    def search(self, key):\r\n        \"\"\"T\u00ecm ki\u1ebfm m\u1ed9t kh\u00f3a trong c\u00e2y BST.\"\"\"\r\n        return self._search_recursive(self.root, key)\r\n\r\n    def _search_recursive(self, current_node, key):\r\n        \"\"\"H\u00e0m \u0111\u1ec7 quy \u0111\u1ec3 t\u00ecm ki\u1ebfm kh\u00f3a trong c\u00e2y con g\u1ed1c t\u1ea1i current_node.\"\"\"\r\n        if current_node is None:\r\n            # \u0110i h\u1ebft nh\u00e1nh m\u00e0 kh\u00f4ng th\u1ea5y -&gt; kh\u00f4ng t\u1ed3n t\u1ea1i\r\n            return None\r\n        elif key == current_node.key:\r\n            # T\u00ecm th\u1ea5y kh\u00f3a t\u1ea1i n\u00fat hi\u1ec7n t\u1ea1i\r\n            return current_node\r\n        elif key &lt; current_node.key:\r\n            # T\u00ecm ki\u1ebfm ti\u1ebfp \u1edf c\u00e2y con tr\u00e1i\r\n            return self._search_recursive(current_node.left, key)\r\n        else: # key &gt; current_node.key\r\n            # T\u00ecm ki\u1ebfm ti\u1ebfp \u1edf c\u00e2y con ph\u1ea3i\r\n            return self._search_recursive(current_node.right, key)\r\n\r\n<\/code><\/pre>\n<p>L\u1edbp <code>BinarySearchTree<\/code> c\u00f3 thu\u1ed9c t\u00ednh <code>root<\/code> tr\u1ecf \u0111\u1ebfn n\u00fat g\u1ed1c. C\u00e1c ph\u01b0\u01a1ng th\u1ee9c <code>insert<\/code> v\u00e0 <code>search<\/code> s\u1eed d\u1ee5ng h\u00e0m \u0111\u1ec7 quy (<code>_insert_recursive<\/code>, <code>_search_recursive<\/code>) \u0111\u1ec3 duy\u1ec7t c\u00e2y v\u00e0 th\u1ef1c hi\u1ec7n thao t\u00e1c t\u01b0\u01a1ng \u1ee9ng theo logic c\u1ee7a BST.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Vi-du-code-duyet-cay-Inorder-LNR-bang-de-quy\"><\/span>V\u00ed d\u1ee5 code duy\u1ec7t c\u00e2y Inorder (LNR) b\u1eb1ng \u0111\u1ec7 quy<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Duy\u1ec7t c\u00e2y Inorder l\u00e0 m\u1ed9t thao t\u00e1c ph\u1ed5 bi\u1ebfn, \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch tr\u00ean BST v\u00ec n\u00f3 tr\u1ea3 v\u1ec1 c\u00e1c kh\u00f3a theo th\u1ee9 t\u1ef1 t\u0103ng d\u1ea7n.<\/p>\n<p>Python<\/p>\n<pre><code class=\"language-plaintext\"># (Th\u00eam ph\u01b0\u01a1ng th\u1ee9c n\u00e0y v\u00e0o l\u1edbp BinarySearchTree)\r\n    def inorder_traversal(self):\r\n        \"\"\"Th\u1ef1c hi\u1ec7n duy\u1ec7t Inorder v\u00e0 tr\u1ea3 v\u1ec1 danh s\u00e1ch c\u00e1c kh\u00f3a.\"\"\"\r\n        result = []\r\n        self._inorder_recursive(self.root, result)\r\n        return result\r\n\r\n    def _inorder_recursive(self, current_node, result_list):\r\n        \"\"\"H\u00e0m \u0111\u1ec7 quy duy\u1ec7t Inorder.\"\"\"\r\n        if current_node is not None:\r\n            # 1. Duy\u1ec7t c\u00e2y con tr\u00e1i (L)\r\n            self._inorder_recursive(current_node.left, result_list)\r\n            # 2. Th\u0103m n\u00fat hi\u1ec7n t\u1ea1i (N) - \u1edf \u0111\u00e2y l\u00e0 th\u00eam v\u00e0o danh s\u00e1ch k\u1ebft qu\u1ea3\r\n            result_list.append(current_node.key)\r\n            # 3. Duy\u1ec7t c\u00e2y con ph\u1ea3i (R)\r\n            self._inorder_recursive(current_node.right, result_list)\r\n\r\n# --- V\u00ed d\u1ee5 s\u1eed d\u1ee5ng ---\r\nbst = BinarySearchTree()\r\nnodes_to_insert = [50, 30, 70, 20, 40, 60, 80]\r\nfor node_key in nodes_to_insert:\r\n    bst.insert(node_key)\r\n\r\nprint(\"Duy\u1ec7t Inorder:\", bst.inorder_traversal()) # Output: [20, 30, 40, 50, 60, 70, 80]\r\n\r\nfound_node = bst.search(40)\r\nif found_node:\r\n    print(f\"T\u00ecm th\u1ea5y n\u00fat c\u00f3 kh\u00f3a: {found_node.key}\")\r\nelse:\r\n    print(\"Kh\u00f4ng t\u00ecm th\u1ea5y n\u00fat.\")\r\n\r\nnot_found_node = bst.search(90)\r\nif not_found_node:\r\n     print(f\"T\u00ecm th\u1ea5y n\u00fat c\u00f3 kh\u00f3a: {not_found_node.key}\")\r\nelse:\r\n    print(\"Kh\u00f4ng t\u00ecm th\u1ea5y n\u00fat c\u00f3 kh\u00f3a 90.\")\r\n\r\n<\/code><\/pre>\n<p>V\u00ed d\u1ee5 tr\u00ean cho th\u1ea5y c\u00e1ch th\u00eam ph\u01b0\u01a1ng th\u1ee9c <code>inorder_traversal<\/code> v\u00e0o l\u1edbp <code>BinarySearchTree<\/code>. H\u00e0m \u0111\u1ec7 quy <code>_inorder_recursive<\/code> tu\u00e2n th\u1ee7 \u0111\u00fang quy t\u1eafc LNR. K\u1ebft qu\u1ea3 khi ch\u1ea1y cho th\u1ea5y danh s\u00e1ch c\u00e1c kh\u00f3a \u0111\u01b0\u1ee3c tr\u1ea3 v\u1ec1 theo \u0111\u00fang th\u1ee9 t\u1ef1 t\u0103ng d\u1ea7n.<\/p>\n<p><strong>L\u01b0u \u00fd:<\/strong> C\u00e1c v\u00ed d\u1ee5 code tr\u00ean ch\u1ec9 mang t\u00ednh minh h\u1ecda c\u01a1 b\u1ea3n. Vi\u1ec7c c\u00e0i \u0111\u1eb7t \u0111\u1ea7y \u0111\u1ee7 c\u00e1c lo\u1ea1i c\u00e2y (\u0111\u1eb7c bi\u1ec7t l\u00e0 c\u00e2y t\u1ef1 c\u00e2n b\u1eb1ng nh\u01b0 AVL, RBT hay B-Tree) ph\u1ee9c t\u1ea1p h\u01a1n \u0111\u00e1ng k\u1ec3 v\u00e0 th\u01b0\u1eddng ng\u01b0\u1eddi ta s\u1ebd s\u1eed d\u1ee5ng c\u00e1c th\u01b0 vi\u1ec7n chu\u1ea9n c\u00f3 s\u1eb5n \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u v\u00e0 ki\u1ec3m th\u1eed k\u1ef9 l\u01b0\u1ee1ng.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phan-tich-do-phuc-tap-thuat-toan-Complexity-Analysis\"><\/span>Ph\u00e2n t\u00edch \u0111\u1ed9 ph\u1ee9c t\u1ea1p thu\u1eadt to\u00e1n (Complexity Analysis)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hi\u1ec3u v\u1ec1 <strong>\u0111\u1ed9 ph\u1ee9c t\u1ea1p thu\u1eadt to\u00e1n (algorithmic complexity)<\/strong>, th\u01b0\u1eddng \u0111\u01b0\u1ee3c bi\u1ec3u di\u1ec5n b\u1eb1ng <strong>k\u00fd ph\u00e1p Big O (Big O notation)<\/strong>, gi\u00fap ch\u00fang ta \u0111\u00e1nh gi\u00e1 hi\u1ec7u su\u1ea5t c\u1ee7a c\u00e1c thao t\u00e1c tr\u00ean c\u00e2y trong c\u00e1c tr\u01b0\u1eddng h\u1ee3p kh\u00e1c nhau (trung b\u00ecnh v\u00e0 x\u1ea5u nh\u1ea5t). \u0110i\u1ec1u n\u00e0y r\u1ea5t quan tr\u1ecdng \u0111\u1ec3 ch\u1ecdn \u0111\u00fang lo\u1ea1i c\u00e2y cho \u1ee9ng d\u1ee5ng c\u1ee5 th\u1ec3.<\/p>\n<figure class=\"table\">\n<table>\n<thead>\n<tr>\n<th>Thao t\u00e1c<\/th>\n<th>BST (Trung b\u00ecnh)<\/th>\n<th>BST (X\u1ea5u nh\u1ea5t)<\/th>\n<th>AVL \/ Red-Black<\/th>\n<th>Heap<\/th>\n<th>B\/B+ Tree (b l\u00e0 b\u1eadc)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>T\u00ecm ki\u1ebfm<\/strong><\/td>\n<td>O(logn)<\/td>\n<td>O(n)<\/td>\n<td>O(logn)<\/td>\n<td>O(n)<\/td>\n<td>O(logb\u200bn)<\/td>\n<\/tr>\n<tr>\n<td><strong>Th\u00eam<\/strong><\/td>\n<td>O(logn)<\/td>\n<td>O(n)<\/td>\n<td>O(logn)<\/td>\n<td>O(logn)<\/td>\n<td>O(logb\u200bn)<\/td>\n<\/tr>\n<tr>\n<td><strong>X\u00f3a<\/strong><\/td>\n<td>O(logn)<\/td>\n<td>O(n)<\/td>\n<td>O(logn)<\/td>\n<td>O(logn)<\/td>\n<td>O(logb\u200bn)<\/td>\n<\/tr>\n<tr>\n<td><strong>L\u1ea5y Min\/Max<\/strong><\/td>\n<td>O(logn)<\/td>\n<td>O(n)<\/td>\n<td>O(logn)<\/td>\n<td>O(1)<\/td>\n<td>O(logb\u200bn)<\/td>\n<\/tr>\n<tr>\n<td><strong>Duy\u1ec7t (All)<\/strong><\/td>\n<td>O(n)<\/td>\n<td>O(n)<\/td>\n<td>O(n)<\/td>\n<td>O(n)<\/td>\n<td>O(n)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><strong>Gi\u1ea3i th\u00edch:<\/strong><\/p>\n<ul>\n<li><strong>O(logn) (Logarithmic Time):<\/strong> R\u1ea5t hi\u1ec7u qu\u1ea3. Th\u1eddi gian th\u1ef1c hi\u1ec7n t\u0103ng r\u1ea5t ch\u1eadm khi s\u1ed1 l\u01b0\u1ee3ng ph\u1ea7n t\u1eed (n) t\u0103ng l\u00ean. \u0110\u00e2y l\u00e0 hi\u1ec7u su\u1ea5t mong mu\u1ed1n c\u1ee7a c\u00e1c c\u00e2y c\u00e2n b\u1eb1ng (AVL, RBT) v\u00e0 BST trong tr\u01b0\u1eddng h\u1ee3p trung b\u00ecnh. \u0110\u1ed1i v\u1edbi B\/B+ Tree, c\u01a1 s\u1ed1 logarit l\u00e0 b\u1eadc <code>b<\/code> c\u1ee7a c\u00e2y, n\u00ean hi\u1ec7u su\u1ea5t c\u00e0ng t\u1ed1t khi <code>b<\/code> l\u1edbn (t\u01b0\u01a1ng \u1ee9ng v\u1edbi chi\u1ec1u cao c\u00e2y th\u1ea5p).<\/li>\n<li><strong>O(n) (Linear Time):<\/strong> Th\u1eddi gian th\u1ef1c hi\u1ec7n t\u0103ng tuy\u1ebfn t\u00ednh v\u1edbi s\u1ed1 l\u01b0\u1ee3ng ph\u1ea7n t\u1eed. \u0110\u00e2y l\u00e0 tr\u01b0\u1eddng h\u1ee3p x\u1ea5u nh\u1ea5t c\u1ee7a BST khi c\u00e2y b\u1ecb suy bi\u1ebfn th\u00e0nh danh s\u00e1ch li\u00ean k\u1ebft. Duy\u1ec7t to\u00e0n b\u1ed9 c\u00e2y ho\u1eb7c t\u00ecm ki\u1ebfm tr\u00ean Heap c\u0169ng m\u1ea5t O(n).<\/li>\n<li><strong>O(1) (Constant Time):<\/strong> C\u1ef1c k\u1ef3 hi\u1ec7u qu\u1ea3. Th\u1eddi gian th\u1ef1c hi\u1ec7n kh\u00f4ng \u0111\u1ed5i d\u00f9 s\u1ed1 l\u01b0\u1ee3ng ph\u1ea7n t\u1eed l\u00e0 bao nhi\u00eau. V\u00ed d\u1ee5 \u0111i\u1ec3n h\u00ecnh l\u00e0 l\u1ea5y ph\u1ea7n t\u1eed nh\u1ecf nh\u1ea5t (Min Heap) ho\u1eb7c l\u1edbn nh\u1ea5t (Max Heap) t\u1eeb g\u1ed1c c\u1ee7a Heap.<\/li>\n<\/ul>\n<p>B\u1ea3ng ph\u00e2n t\u00edch tr\u00ean cho th\u1ea5y r\u00f5 l\u1ee3i \u00edch c\u1ee7a vi\u1ec7c s\u1eed d\u1ee5ng c\u00e2y c\u00e2n b\u1eb1ng (AVL, Red-Black) ho\u1eb7c B\/B+ Tree khi c\u1ea7n \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t \u1ed5n \u0111\u1ecbnh O(logn) cho c\u00e1c thao t\u00e1c t\u00ecm ki\u1ebfm, th\u00eam, x\u00f3a, tr\u00e1nh \u0111\u01b0\u1ee3c tr\u01b0\u1eddng h\u1ee3p x\u1ea5u O(n) c\u1ee7a BST th\u00f4ng th\u01b0\u1eddng. Heap l\u1ea1i t\u1ecfa s\u00e1ng khi c\u1ea7n truy c\u1eadp nhanh ph\u1ea7n t\u1eed nh\u1ecf nh\u1ea5t\/l\u1edbn nh\u1ea5t.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ung-dung-thuc-te-cua-cau-truc-du-lieu-cay\"><\/span>\u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>C\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y kh\u00f4ng ch\u1ec9 t\u1ed3n t\u1ea1i trong l\u00fd thuy\u1ebft hay c\u00e1c b\u00e0i t\u1eadp l\u1eadp tr\u00ecnh. Ch\u00fang l\u00e0 x\u01b0\u01a1ng s\u1ed1ng c\u1ee7a r\u1ea5t nhi\u1ec1u c\u00f4ng ngh\u1ec7 v\u00e0 \u1ee9ng d\u1ee5ng m\u00e0 ch\u00fang ta t\u01b0\u01a1ng t\u00e1c h\u00e0ng ng\u00e0y:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"To-chuc-he-thong-tep-tin-File-Systems\"><\/span>T\u1ed5 ch\u1ee9c h\u1ec7 th\u1ed1ng t\u1ec7p tin (File Systems)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>H\u1ea7u h\u1ebft c\u00e1c <a href=\"https:\/\/interdata.vn\/blog\/he-dieu-hanh\/\">h\u1ec7 \u0111i\u1ec1u h\u00e0nh<\/a> (Windows, macOS, <a href=\"https:\/\/interdata.vn\/blog\/he-dieu-hanh-linux-la-gi\/\">Linux<\/a>) s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac gi\u1ed1ng c\u00e2y \u0111\u1ec3 qu\u1ea3n l\u00fd t\u1ec7p v\u00e0 th\u01b0 m\u1ee5c. M\u1ed7i th\u01b0 m\u1ee5c l\u00e0 m\u1ed9t n\u00fat, c\u00f3 th\u1ec3 ch\u1ee9a c\u00e1c t\u1ec7p (n\u00fat l\u00e1) ho\u1eb7c c\u00e1c th\u01b0 m\u1ee5c con kh\u00e1c (n\u00fat trong). C\u1ea5u tr\u00fac ph\u00e2n c\u1ea5p n\u00e0y gi\u00fap ng\u01b0\u1eddi d\u00f9ng v\u00e0 h\u1ec7 th\u1ed1ng d\u1ec5 d\u00e0ng \u0111i\u1ec1u h\u01b0\u1edbng v\u00e0 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lap-chi-muc-co-so-du-lieu-Database-Indexing-%E2%80%93-BB-Trees\"><\/span>L\u1eadp ch\u1ec9 m\u1ee5c c\u01a1 s\u1edf d\u1eef li\u1ec7u (Database Indexing &#8211; B\/B+ Trees)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Nh\u01b0 \u0111\u00e3 \u0111\u1ec1 c\u1eadp, B-Tree v\u00e0 \u0111\u1eb7c bi\u1ec7t l\u00e0 B+ Tree \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 t\u1ea1o ch\u1ec9 m\u1ee5c (index) trong c\u00e1c h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 (nh\u01b0 <a href=\"https:\/\/interdata.vn\/blog\/mysql-la-gi\/\">MySQL<\/a>, <a href=\"https:\/\/interdata.vn\/blog\/postgresql-la-gi\/\">PostgreSQL<\/a>, Oracle). Ch\u1ec9 m\u1ee5c gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 <a href=\"https:\/\/interdata.vn\/blog\/query-la-gi\/\">truy v\u1ea5n<\/a> d\u1eef li\u1ec7u \u0111\u00e1ng k\u1ec3 b\u1eb1ng c\u00e1ch cho ph\u00e9p h\u1ec7 th\u1ed1ng nhanh ch\u00f3ng x\u00e1c \u0111\u1ecbnh v\u1ecb tr\u00ed c\u1ee7a c\u00e1c b\u1ea3n ghi c\u1ea7n thi\u1ebft tr\u00ean \u0111\u0129a m\u00e0 kh\u00f4ng c\u1ea7n qu\u00e9t to\u00e0n b\u1ed9 b\u1ea3ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Phan-tich-cu-phap-HTMLXML-DOM-Structure\"><\/span>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p HTML\/XML (DOM Structure)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Khi tr\u00ecnh duy\u1ec7t web t\u1ea3i m\u1ed9t trang <a href=\"https:\/\/interdata.vn\/blog\/html-la-gi\/\">HTML<\/a>, n\u00f3 s\u1ebd x\u00e2y d\u1ef1ng m\u1ed9t c\u1ea5u tr\u00fac c\u00e2y g\u1ecdi l\u00e0 <strong>Document Object Model (DOM)<\/strong>. M\u1ed7i th\u1ebb HTML (nh\u01b0 <code>&lt;html&gt;<\/code>, <code>&lt;body&gt;<\/code>, <code>&lt;div&gt;<\/code>, <code>&lt;p&gt;<\/code>) tr\u1edf th\u00e0nh m\u1ed9t n\u00fat trong c\u00e2y DOM, ph\u1ea3n \u00e1nh c\u1ea5u tr\u00fac l\u1ed3ng nhau c\u1ee7a t\u00e0i li\u1ec7u. <a href=\"https:\/\/interdata.vn\/blog\/javascript-la-gi\/\">Javascript<\/a> s\u1eed d\u1ee5ng c\u00e2y DOM n\u00e0y \u0111\u1ec3 truy c\u1eadp v\u00e0 thay \u0111\u1ed5i n\u1ed9i dung, c\u1ea5u tr\u00fac, ki\u1ec3u d\u00e1ng c\u1ee7a <a href=\"https:\/\/interdata.vn\/blog\/page-la-gi\/\">trang web<\/a> m\u1ed9t c\u00e1ch \u0111\u1ed9ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Thuat-toan-dinh-tuyen-mang-Network-Routing\"><\/span>Thu\u1eadt to\u00e1n \u0111\u1ecbnh tuy\u1ebfn m\u1ea1ng (Network Routing)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>M\u1ed9t s\u1ed1 thu\u1eadt to\u00e1n \u0111\u1ecbnh tuy\u1ebfn trong m\u1ea1ng m\u00e1y t\u00ednh s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac c\u00e2y (v\u00ed d\u1ee5: Spanning Tree Protocol &#8211; STP) \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh \u0111\u01b0\u1eddng \u0111i t\u1ed1t nh\u1ea5t v\u00e0 tr\u00e1nh c\u00e1c <a href=\"https:\/\/interdata.vn\/blog\/vong-lap-la-gi\/\">v\u00f2ng l\u1eb7p<\/a> (loops) trong m\u1ea1ng. C\u00e1c b\u1ed9 \u0111\u1ecbnh tuy\u1ebfn (routers) x\u00e2y d\u1ef1ng b\u1ea3ng \u0111\u1ecbnh tuy\u1ebfn d\u1ef1a tr\u00ean c\u1ea5u tr\u00fac m\u1ea1ng, t\u01b0\u01a1ng t\u1ef1 nh\u01b0 m\u1ed9t d\u1ea1ng c\u00e2y ph\u00e2n c\u1ea5p.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Sap-xep-du-lieu-Heapsort\"><\/span>S\u1eafp x\u1ebfp d\u1eef li\u1ec7u (Heapsort)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp Heap Sort s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac d\u1eef li\u1ec7u Max Heap (ho\u1eb7c Min Heap) \u0111\u1ec3 s\u1eafp x\u1ebfp m\u1ed9t m\u1ea3ng d\u1eef li\u1ec7u v\u1edbi \u0111\u1ed9 ph\u1ee9c t\u1ea1p th\u1eddi gian \u1ed5n \u0111\u1ecbnh O(nlogn). N\u00f3 x\u00e2y d\u1ef1ng m\u1ed9t Heap t\u1eeb d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o, sau \u0111\u00f3 li\u00ean t\u1ee5c l\u1ea5y ph\u1ea7n t\u1eed l\u1edbn nh\u1ea5t (t\u1eeb g\u1ed1c Max Heap) \u0111\u1eb7t v\u00e0o cu\u1ed1i m\u1ea3ng \u0111\u00e3 s\u1eafp x\u1ebfp.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cay-quyet-dinh-trong-AIML-Decision-Trees\"><\/span>C\u00e2y quy\u1ebft \u0111\u1ecbnh trong AI\/ML (Decision Trees)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Trong l\u0129nh v\u1ef1c Tr\u00ed tu\u1ec7 Nh\u00e2n t\u1ea1o (AI) v\u00e0 H\u1ecdc m\u00e1y (<a href=\"https:\/\/interdata.vn\/blog\/machine-learning-la-gi\/\">Machine Learning<\/a>), <strong>C\u00e2y Quy\u1ebft \u0111\u1ecbnh (Decision Tree)<\/strong> l\u00e0 m\u1ed9t m\u00f4 h\u00ecnh h\u1ecdc c\u00f3 gi\u00e1m s\u00e1t ph\u1ed5 bi\u1ebfn. N\u00f3 s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac c\u00e2y \u0111\u1ec3 \u0111\u01b0a ra quy\u1ebft \u0111\u1ecbnh d\u1ef1a tr\u00ean c\u00e1c \u0111\u1eb7c tr\u01b0ng (features) c\u1ee7a d\u1eef li\u1ec7u. M\u1ed7i n\u00fat trong bi\u1ec3u di\u1ec5n m\u1ed9t b\u00e0i ki\u1ec3m tra tr\u00ean m\u1ed9t \u0111\u1eb7c tr\u01b0ng, m\u1ed7i nh\u00e1nh bi\u1ec3u di\u1ec5n k\u1ebft qu\u1ea3 c\u1ee7a b\u00e0i ki\u1ec3m tra, v\u00e0 m\u1ed7i n\u00fat l\u00e1 bi\u1ec3u di\u1ec5n m\u1ed9t nh\u00e3n l\u1edbp ho\u1eb7c gi\u00e1 tr\u1ecb d\u1ef1 \u0111o\u00e1n.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Goi-y-tu-khoaTu-dong-hoan-thanh-Autocomplete-%E2%80%93-Trie\"><\/span>G\u1ee3i \u00fd t\u1eeb kh\u00f3a\/T\u1ef1 \u0111\u1ed9ng ho\u00e0n th\u00e0nh (Autocomplete &#8211; Trie)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u1ea5u tr\u00fac c\u00e2y Trie l\u00e0 l\u1ef1a ch\u1ecdn l\u00fd t\u01b0\u1edfng cho c\u00e1c ch\u1ee9c n\u0103ng t\u1ef1 \u0111\u1ed9ng ho\u00e0n th\u00e0nh ho\u1eb7c g\u1ee3i \u00fd t\u1eeb kh\u00f3a m\u00e0 b\u1ea1n th\u1ea5y trong c\u00e1c c\u00f4ng c\u1ee5 t\u00ecm ki\u1ebfm, tr\u00ecnh so\u1ea1n th\u1ea3o code, ho\u1eb7c \u1ee9ng d\u1ee5ng nh\u1eafn tin. Khi b\u1ea1n g\u00f5, h\u1ec7 th\u1ed1ng s\u1eed d\u1ee5ng Trie \u0111\u1ec3 nhanh ch\u00f3ng t\u00ecm t\u1ea5t c\u1ea3 c\u00e1c t\u1eeb ho\u1eb7c c\u1ee5m t\u1eeb c\u00f3 ti\u1ec1n t\u1ed1 tr\u00f9ng kh\u1edbp v\u1edbi nh\u1eefng g\u00ec b\u1ea1n \u0111\u00e3 nh\u1eadp.<\/p>\n<p>Ngo\u00e0i ra, c\u00e2y c\u00f2n c\u00f3 nhi\u1ec1u \u1ee9ng d\u1ee5ng kh\u00e1c nh\u01b0 trong thu\u1eadt to\u00e1n n\u00e9n d\u1eef li\u1ec7u (Huffman Coding), x\u1eed l\u00fd bi\u1ec3u th\u1ee9c to\u00e1n h\u1ecdc, c\u00e1c thu\u1eadt to\u00e1n \u0111\u1ed3 th\u1ecb, v\u00e0 nhi\u1ec1u l\u0129nh v\u1ef1c kh\u00e1c c\u1ee7a khoa h\u1ecdc m\u00e1y t\u00ednh.<\/p>\n<div style=\"background-color: #e6f2ff; border-radius: 10px; padding: 20px; margin: 20px 0; border: 1px solid #b3d9ff;\">\n<p>Khi \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n, v\u1ed1n t\u1eadn d\u1ee5ng s\u1ee9c m\u1ea1nh c\u1ee7a c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p n\u00e0y, c\u1ea7n \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o ho\u1ea1t \u0111\u1ed9ng th\u1ef1c t\u1ebf, m\u1ed9t n\u1ec1n t\u1ea3ng h\u1ea1 t\u1ea7ng \u1ed5n \u0111\u1ecbnh v\u00e0 t\u1ed1c \u0111\u1ed9 cao l\u00e0 y\u1ebfu t\u1ed1 then ch\u1ed1t. H\u00e3y kh\u00e1m ph\u00e1 d\u1ecbch v\u1ee5 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/interdata.vn\/thue-hosting\/\"><strong>thu\u00ea Hosting<\/strong><\/a> t\u1ea1i InterData, \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean ph\u1ea7n c\u1ee9ng chuy\u00ean d\u1ee5ng th\u1ebf h\u1ec7 m\u1edbi nh\u01b0 <a href=\"https:\/\/interdata.vn\/blog\/cpu-amd-epyc\/\">AMD EPYC<\/a> Gen 3th v\u00e0 SSD NVMe U.2.<\/p>\n<p>N\u1ebfu c\u1ea7n nhi\u1ec1u quy\u1ec1n ki\u1ec3m so\u00e1t v\u00e0 t\u00e0i nguy\u00ean h\u01a1n, d\u1ecbch v\u1ee5 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/interdata.vn\/thue-vps\/\"><strong>thu\u00ea VPS<\/strong><\/a> mang \u0111\u1ebfn c\u00e1c c\u1ea5u h\u00ecnh m\u1ea1nh m\u1ebd, ch\u1ea5t l\u01b0\u1ee3ng v\u00e0 \u0111\u00e1ng tin c\u1eady.<\/p>\n<p>\u0110\u1ed1i v\u1edbi nh\u1eefng d\u1ef1 \u00e1n \u0111\u00f2i h\u1ecfi kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng linh ho\u1ea1t v\u00e0 hi\u1ec7u n\u0103ng v\u01b0\u1ee3t tr\u1ed9i, d\u1ecbch v\u1ee5 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/interdata.vn\/cloud-server\/\"><strong>thu\u00ea Cloud Server<\/strong><\/a> l\u00e0 gi\u1ea3i ph\u00e1p cao c\u1ea5p v\u1edbi c\u00f4ng ngh\u1ec7 <a href=\"https:\/\/interdata.vn\/blog\/ao-hoa-la-gi\/\">\u1ea3o h\u00f3a<\/a> ti\u00ean ti\u1ebfn. C\u00e1c d\u1ecbch v\u1ee5 t\u1ea1i InterData \u0111\u1ec1u ch\u00fa tr\u1ecdng s\u1ef1 \u1ed5n \u0111\u1ecbnh, cung c\u1ea5p <a href=\"https:\/\/interdata.vn\/blog\/bang-thong-la-gi\/\">b\u0103ng th\u00f4ng<\/a> cao v\u00e0 dung l\u01b0\u1ee3ng \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u, gi\u00fap c\u00e1c d\u1ef1 \u00e1n \u0111\u00f2i h\u1ecfi c\u1ea5u h\u00ecnh m\u1ea1nh c\u1ee7a b\u1ea1n v\u1eadn h\u00e0nh m\u01b0\u1ee3t m\u00e0, hi\u1ec7u qu\u1ea3 tr\u00ean m\u1ed9t n\u1ec1n t\u1ea3ng uy t\u00edn.<\/p>\n<\/div>\n<hr \/>\n<p>Qua b\u00e0i vi\u1ebft n\u00e0y, ch\u00fang ta \u0111\u00e3 c\u00f9ng nhau kh\u00e1m ph\u00e1 th\u1ebf gi\u1edbi phong ph\u00fa c\u1ee7a <strong>c\u1ea5u tr\u00fac d\u1eef li\u1ec7u Tree (C\u00e2y)<\/strong>. T\u1eeb \u0111\u1ecbnh ngh\u0129a c\u01a1 b\u1ea3n, c\u00e1c thu\u1eadt ng\u1eef quan tr\u1ecdng, \u0111\u1ebfn vi\u1ec7c ph\u00e2n lo\u1ea1i c\u00e1c lo\u1ea1i c\u00e2y ph\u1ed5 bi\u1ebfn nh\u01b0 C\u00e2y Nh\u1ecb ph\u00e2n, BST, AVL, Red-Black, Heap, B-Tree, B+ Tree, Trie, ch\u00fang ta \u0111\u00e3 th\u1ea5y \u0111\u01b0\u1ee3c s\u1ef1 \u0111a d\u1ea1ng v\u00e0 vai tr\u00f2 kh\u00f4ng th\u1ec3 thi\u1ebfu c\u1ee7a ch\u00fang.<\/p>\n<p>Ch\u00fang ta c\u0169ng \u0111\u00e3 t\u00ecm hi\u1ec3u c\u00e1c thao t\u00e1c c\u1ed1t l\u00f5i nh\u01b0 duy\u1ec7t c\u00e2y (DFS, BFS), t\u00ecm ki\u1ebfm, th\u00eam, x\u00f3a n\u00fat, c\u00f9ng v\u1edbi vi\u1ec7c ph\u00e2n t\u00edch \u0111\u1ed9 ph\u1ee9c t\u1ea1p \u0111\u1ec3 \u0111\u00e1nh gi\u00e1 hi\u1ec7u su\u1ea5t. Quan tr\u1ecdng h\u01a1n, vi\u1ec7c nh\u1eadn ra c\u00e1c \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a c\u00e2y trong h\u1ec7 th\u1ed1ng t\u1ec7p, c\u01a1 s\u1edf d\u1eef li\u1ec7u, web, AI&#8230; gi\u00fap ch\u00fang ta th\u1ea5y r\u00f5 gi\u00e1 tr\u1ecb v\u00e0 t\u1ea7m quan tr\u1ecdng c\u1ee7a vi\u1ec7c n\u1eafm v\u1eefng c\u1ea5u tr\u00fac d\u1eef li\u1ec7u n\u00e0y.<\/p>\n<p>Hi v\u1ecdng r\u1eb1ng, b\u00e0i vi\u1ebft \u0111\u00e3 cung c\u1ea5p cho b\u1ea1n, d\u00f9 l\u00e0 sinh vi\u00ean \u0111ang h\u1ecdc hay l\u1eadp tr\u00ecnh vi\u00ean mu\u1ed1n c\u1ee7ng c\u1ed1 ki\u1ebfn th\u1ee9c, m\u1ed9t n\u1ec1n t\u1ea3ng v\u1eefng ch\u1eafc v\u1ec1 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00e2y. \u0110\u00e2y l\u00e0 m\u1ed9t ch\u1ee7 \u0111\u1ec1 r\u1ed9ng l\u1edbn v\u00e0 lu\u00f4n c\u00f3 nh\u1eefng kh\u00eda c\u1ea1nh s\u00e2u h\u01a1n \u0111\u1ec3 kh\u00e1m ph\u00e1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trong l\u1eadp tr\u00ecnh, c\u1ea5u tr\u00fac d\u1eef li\u1ec7u Tree (c\u00e2y) l\u00e0 m\u1ed9t trong nh\u1eefng n\u1ec1n t\u1ea3ng quan tr\u1ecdng gi\u00fap x\u1eed l\u00fd d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch c\u00f3 t\u1ed5 ch\u1ee9c v\u00e0 hi\u1ec7u qu\u1ea3. B\u00e0i vi\u1ebft n\u00e0y s\u1ebd gi\u00fap b\u1ea1n hi\u1ec3u r\u00f5: Tree l\u00e0 g\u00ec, t\u1ea1i sao n\u00f3 quan tr\u1ecdng, c\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n nh\u01b0 Node, Root, Leaf,<\/p>\n","protected":false},"author":2,"featured_media":27382,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[140],"tags":[],"class_list":["post-27374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lap-trinh"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/27374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=27374"}],"version-history":[{"count":3,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/27374\/revisions"}],"predecessor-version":[{"id":27384,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/27374\/revisions\/27384"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/27382"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=27374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=27374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=27374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}