Tâm cây
Định nghĩa
Trong một cây, nếu chọn đỉnh \(x\) làm gốc sao cho độ dài xích lớn nhất xuất phát từ \(x\) là nhỏ nhất, thì \(x\) được gọi là tâm của cây (tree center).
Tính chất
- Tâm của cây không nhất thiết duy nhất, nhưng nhiều nhất có \(2\) đỉnh, và nếu có hai tâm thì chúng kề nhau.
- Tâm của cây luôn nằm trên đường kính của cây.
- Mọi đường đi từ một đỉnh đến đỉnh xa nhất của nó đều đi qua tâm của cây.
- Khi lấy tâm làm gốc, hai xích dài nhất từ tâm đến hai đầu đường kính chính là hai xích dài nhất và nhì của cây.
- Khi nối hai cây thành một cây mới bằng một cạnh, nối hai tâm sẽ làm đường kính cây mới nhỏ nhất.
- Khoảng cách từ tâm đến mọi đỉnh khác không vượt quá một nửa đường kính của cây.
Cách tìm
Tìm một đỉnh \(x\) sao cho khi lấy \(x\) làm gốc, xích dài nhất xuất phát từ \(x\) là nhỏ nhất.
Các bước cụ thể
- Duy trì \(len1_x\): độ dài xích dài nhất trong cây con gốc \(x\).
- Duy trì \(len2_x\): độ dài xích dài nhì trong cây con gốc \(x\), không trùng với \(len1_x\).
- Duy trì \(up_x\): độ dài xích dài nhất đi ra ngoài cây con gốc \(x\) (bắt buộc đi qua cha của \(x\)).
- Tìm đỉnh \(x\) sao cho \(\max(len1_x, up_x)\) nhỏ nhất, đó là tâm của cây.
Code tham khảo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | |
Ví dụ
Giả sử có cây sau:
1 2 3 4 5 | |
- Đường kính của cây là \(D \rightarrow B \rightarrow A \rightarrow C \rightarrow F\), độ dài \(4\).
- Tâm của cây là \(A\), vì từ \(A\) đến \(D\) hoặc \(F\) đều dài \(2\).
- Nếu lấy \(B\) hoặc \(C\) làm gốc, xích dài nhất sẽ lớn hơn, nên không phải tâm.
Độ phức tạp
Thuật toán trên có độ phức tạp \(O(n)\) với \(n\) là số đỉnh của cây.
Tham khảo
- TutorialsPoint: Centers of a Tree
- ProofWiki: Definition of Center of Tree
- Wikipedia: Tree (graph theory)
Last updated on this page:, Update history
Found an error? Want to help improve? Edit this page on GitHub!
Contributors to this page:littleparrot12345
All content on this page is provided under the terms of the CC BY-SA 4.0 and SATA license, additional terms may apply