Xét mục lục của một quyển sách. Mục lục này có thể xem là một cây:
Hình III.1 - Cây mục lục một quyển sách
Như vậy cây bao gồm một tập hữu hạn các đỉnh, trong đó có một đỉnh đặc biệt gọi là gốc (root). Giữa các đỉnh có một quan hệ phân cấp gọi là quan hệ cha - con. Nếu a là đỉnh gốc của một cây còn b là gốc cây con của đỉnh a thì ta nói a là đỉnh cha còn b là đỉnh con.
♦ Nếu tập các đỉnh = rỗng => Cây là cây rỗng
♦ Số các cây con ở mỗi đỉnh được gọi là bậc của đỉnh đó. Đỉnh có bậc = 0 gọi là lá (đỉnh tận cùng), đỉnh không là lá gọi là đỉnh trong.
♦ Các đỉnh có cùng cha gọi là anh em, xét từ trái sang phải
♦ Chiều cao của cây (height) của cây là số mức lớn nhất của đỉnh có trên cây
♦ Tập các cây con phân biệt người ta gọi là Rừng
♦ Gốc của cây có mức 1 (level = 1). Nếu đỉnh cha có mức i thì các đỉnh con của nó sẽ có mức là i+1
♦ Một dãy các đỉnh a1, a2, ... , an (n>0) sao cho ai là cha của ai+1 gọi là một đường đi từ a1 đến an với độ dài n-1. Luôn tồn tại đường đi từ gốc đến một đỉnh bất kỳ trong cây.
♦ Trong một cây T, mỗi đỉnh a của nó là gốc của một cây nào đó gọi là cây con của T.
♦ Cây được sắp: Các đỉnh trong cây được sắp xếp theo thứ tự nào đó. Nếu đỉnh a có các đỉnh con b1, b2, ..., bm theo thứ tự này thì ta nói b1 là con trưởng và b2 là em liền kề của nó.
3.1.2 Các phép toán cơ bản trên cây
Xét cây gốc T:
- Hàm PARENT(n) trả về nút cha của nút n trên cây T, nếu n là nút gốc thì hàm cho giá trị $. Trong cài đặt cụ thể thì $ là một giá trị nào đó do ta chọn, nó
phụ thuộc vào cấu trúc dữ liệu mà ta dùng để cài đặt cây.
- Hàm ELDEST_CHILD(n) cho nút con trái nhất của nút n trên cây T, nếu n là lá thì hàm cho giá trị $.
- Hàm NEXT_SIBLING(n) cho nút anh em ruột phải nút n trên cây T, nếu n không có anh em ruột phải thì hàm cho giá trị $.
- Hàm value(n) Trả về giá trị lưu tại nút n của cây T.
3.1.3 Các cách thăm ( duyệt) cây
- Duyệt cây: Là phép thăm các đỉnh trên cây, sao cho mỗi đỉnh chỉ được thăm duy nhất một lần
- Xét cây tổng quát sau:
* Xét ba phương pháp duyệt cây cơ bản: - Duyệt cây theo thứ tự trước – Preorder - Duyệt cây theo thứ tự giữa – Inorder - Duyệt cây theo thứ tự sau - Postorder .
* Nguyên tắc duyệt, giải thuật tương ứng với từng phương pháp: Giả sử xét cây gốc T