1.1. Khái niệm cây
Cây là một cấu trúc phi tuyến . Một cây là một tập hợp hữu hạn các nút trong đó có một nút đặc biệt gọi là gốc (Root). Giữa các nút có mối quan hệ phân cấp gọi là “quan hệ cha con” .
Có thể định nghĩa cây một cách đệ quy như sau:
Một nút là một cây. Nút đó cũng là gốc của cây đó.
Nếu n là một nút và T1,T2,...,Tk là các cây . Với n1,n2,....,nk lần lượt là các gốc thì cây mới T sẽ được tạo lập bằng cách cho n trở thành “cha “ của các nút n1,n2,....,nk. Nghĩa là trên cây mới này n là gốc còn T1,T2,...,Tk là các cây con của gốc, lúc đó n1,n2,....,nk là con của nút n.
Để tiện, người ta cho phép một cây không có nút nào, mà ta gọi là cây rỗng (null tree).
Hình 6.1: Cây tổng quát
111 1.2. Một số khái niệm của cây
- Cấp (degree): Số các con của một nút gọi là cấp của nút đó (hình 6.1: A có 3 con là cấp 3).
o Nút có cấp bằng không (nút không có con) gọi là lá (Leaf) (hinh 6.1: E,F,C,.. là lá)
o Cấp cao nhất của nút có trên cây thì gọi là cấp của cây. (hình 6.1: Cấp là 3).
- Mức (Level): Gốc của cây có số mức là một.
Nếu nút cha có số mức là i thì nút con có số mức là i+1 (hình 6.1: A có mức là 1, D có mức là 2, G có mức là 3,...).
- Chiều cao (Hight) hay chiều sâu (Depth) của một cây là số mức lớn nhất của nút có trên cây đó. (hình 6.1: có số mức cao nhất là 4 nên cây có chiều cao cũng là 4).
- Đường đi (Path): Nếu ta có một dãy các nút n1,n2,...,nk trên cây và thỏa mãn ni là cha của ni+1 thì dãy đó được gọi là đường đi trên cây đó. Độ dài của đường đi (path length): Là số nút trên đường đi trừ đi một.
- Nếu thứ tự các cây con của một nút được coi trọng thì cây đang xét là cây có thứ tự (ordered tree), ngược lại là cây không có thứ tự (Unordered tree), Thường thứ tự các cây con của một nút được đặt từ trái sang phải.
- Nếu có một tập hữu hạn các cây phân biệt thì ta gọi tập đó là một rừng (forest) (chú ý : Khái niệm về rừng ở đây phải hiểu theo nghĩa riêng: Có một cây, nếu ta bỏ nút gốc đi ta sẽ có một rừng).