ai giải thích cho em node* trong đây được không ạ?
struct node
{
int key;
node*pleft;
node*pright;
};
typedef node* tree;
node* createnode(int x)
{
node*n = new node();
n->key = x;
n->pleft = NULL;
n->pright = NULL;
return n;
}
ai giải thích cho em node* trong đây được không ạ?
struct node
{
int key;
node*pleft;
node*pright;
};
typedef node* tree;
node* createnode(int x)
{
node*n = new node();
n->key = x;
n->pleft = NULL;
n->pright = NULL;
return n;
}
Node* là một con trỏ kiểu node thôi, không hiểu bạn thắc mắc gì lắm ;))
hàm trả về node* đó bạn node* createnode(int x), bạn giải thich cho mình chỗ đó đc k?
còn node* init_tree(node* &root) trong đó node* &root để làm gì vậy?
Bạn muốn giải thích cái gì nhỉ, chỉ là trả về một con trỏ thôi mà hmm… Đôi khi muốn giải thích cái quá cơ bản rất khó, bạn phải cho mọi người biết bạn không hiểu cái gì. Nếu hoàn toàn không hiểu cái gì hết thì sẽ có cách giải thích khác.
em biết con trỏ thì trỏ đến 1 vùng nhớ kiểu tham chiếu có thể thay đổi giá trị con trỏ và cả vùng nhớ. còn hàm node* này là trả về con trỏ nghĩa là sao anh thiệt là em hơi mù mở về chỗ này.? còn node* init_tree(node* &root) , node * &root, khai báo con trỏ root kiểu node kèm theo & là gì anh.?
Có nghĩa là nó trả về một con trỏ. Em không hiểu con trỏ là cái gì. Con trỏ là một biến thôi, biến con trỏ.
Hàm này trả về một biến, biến đó là biến con trỏ, tức là một con trỏ đấy.
Em hiểu hàm trả về kiểu int không?
int tinh_tong(int a, int b)
Hàm này trả về biến kiểu int.
Tương tự
int * ting_tong(int a, int b)
trả về biến con trỏ kiểu int
& là reference. Đừng “sợ” tiếng anh, đừng sợ reference là cái gì ghê gớm. Reference cho phép mình thay đổi giá trị của biến khi mình gửi nó vào hàm.
Để hiểu node * & root
là gì thì mình thử đọc tên của nó lên. Trong C/C++ có một quy tắc đọc rất đơn giản, đọc tử phải sang trái.
root là reference đến con trỏ kiểu node.
Như anh đã nói ở trên, reference cho phép mình thay đổi con trỏ. Vậy có nghĩa root là con trỏ mà thay đổi được địa chỉ của nó khi gửi vào hàm.
OK. Tới đây thì nó bắt đầu phức tạp rồi. Để giải thích cái này thì em phải hiểu khi truyền một biễn vào trong hàm ta có 3 cách truyền
Anh khuyến khích sử dụng tiếng anh, bởi vì anh không khoái tham trị và tham chiếu tí nào. Tham trị và tham chiếu không phải là tiếng Việt thuần, nó là Hán Việt. Mà đã là Hán Việt thì có từ dễ hiểu, từ khó hiểu, Tham Trị và tham chiếu là hai từ lạ hoắc. Cuối cùng vẫn phải học tham trị là gì, tham chiếu là gì rồi phải học pointer, reference, value là gì. Ôi giáo dục.
Em tìm hiểu 3 cách truyền này trên channel youtube của anh
Bài 41, 42, 43 em sẽ hiểu tham chiếu(reference) là gì.
Khi em hiểu khái niệm đó, em nên học tiếp pointer là gì.
Khi em hiểu hai cái đó mà vẫn chưa hiểu * &
là gì thì anh sẽ giải thích cho em tiếp.
em tks anh em hiểu rồi.