Cho cấu trúc cây tổng quát cài đặt bằng mảng, trong đó mỗi phần tử của mảng là một cấu trúc bao gôm 3 thành phần: chỉ số nút (có giá trị tính từ 1), nhãn của nút và chỉ số nút cha như khai báo dưới đây. Chú ý: chỉ số nút có giá trị khác với chỉ số mảng của nút. Nút gốc có chỉ số nút cha là 0.

Code:

#define MAXLENGTH 100
typedef char DataType;
typedef struct Node{
    int Id; //chi so nut
    DataType Label; //nhan cua nut
    int Parent; //chi so nut cha
};

typedef struct Tree{
    Node arrayNode[MAXLENGTH]; //mang cac nut
    int MaxNode; //so nut cua cay
};

Yêu cầu:
1. Viết hàm Member(Tree T, DataType X) là hàm kiểm tra nhãn X có phải là nhãn của 1 nút thuộc cây T không, kết quả trả về con trỏ trỏ đến nút có nhãn là X nếu tồn tại, trả về Null/Nil nếu cây T không có nút có nhãn X.
2. Viết hàm Depth(Tree T, DataType X) trả về độ sâu của nút có nhãn là X trong cây T.
3. Viết hàm High(Tree T) trả về chiều cao của cây T.
4. Viết hàm OrderNode(Tree T, DataType X) trả về bậc của nút có nhãn X trong cây T.
5. Viết hàm Order(Tree T) trả về bậc của cây T.
6. Viết hàm Leaf(Tree T, DataType X) kiểm tra xem nút có nhãn X có phải là nút trong cây T không?
Ai biết xin được giúp đỡ. Cảm ơn nhiều!