Thắc mắc khai báo cấu trúc cây nhị phân?

struct TNode
{
        int data;
        TNode *pLeft, *pRight;
};
typedef TNode *Tree; //???

void InitTree(Tree &t)
{
       t = NULL;
}

typedef TNode *Tree; có phải là khai báo biến con trỏ Tree trỏ về kiểu dữ liệu TNode, nếu đúng như vậy thì tại sao chỗ hàm InitTree ta lại dùng Tree là một kiểu dữ kiệu??

Có nghĩa là Tree<=> TNode *

1 Like

có nghĩa là gì nhỉ???
cái trên khác với khai báo này như thế nào nhỉ typedef TNode Tree; ( typedef chắc là khai báo không tường minh, Tree là cách viết gọn của TNode có đúng không nhỉ)

Tức là nó tạo ra 1 cái tên mới cho TNode* là Tree, cho đỡ mất công gõ TNode* :pig_nose:

typedef TNode* Tree; khác với typedef TNode Tree; như thế nào nhỉ @RimCones

Khác nhau là 1 cái là TNode* và cái kia là TNode :cow:

Bạn cứ thứ 2 trường hợp rồi chạy chương trình bạn sẽ thấy sự khác nhau. Đó là 1 cách học tốt đấy :grinning:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?