node *creatNode (int x)
{
node *temp = new node;
temp -> data = x;
temp -> next = NULL;
return temp;
}
mọi người có thể cho em hỏi tại sao hàm này phải là *creatNode được không ạ.
node *creatNode (int x)
{
node *temp = new node;
temp -> data = x;
temp -> next = NULL;
return temp;
}
mọi người có thể cho em hỏi tại sao hàm này phải là *creatNode được không ạ.
do hàm trả về con trỏ kiểu node anh nhé. Mỗi node thực chất là 1 con trỏ nên khi anh tạo ra 1 node mới thì giá trị trả về khi gọi hàm tạo phải là kiểu con trỏ.
Anh tìm hiểu thêm phần cấp phát động và tìm hiểu về hàm có trả về nhé. Nên nắm vững 1 chút cơ bản rồi hãy học đến giải thuật sẽ dễ dàng hơn nhé.
Tìm hiểu hết xong mà hiểu được dòng dưới đây là ok.
node *a = createNode(2);
Không, hàm này chỉ là createNode
thôi, thử thay đổi cách viết một chút nhé
node* createNode(int x)
{
node* temp = new node;
temp -> data = x;
temp -> next = NULL;
return temp;
}
Bạn học cấp phát bộ nhớ động chưa?
Bạn có hiểu <kiểu dữ liệu>*
nghĩa là gì không?
Em hiểu rồi ạ. Cảm ơn mọi người