Hỏi về hàm tạo node danh sách liên kết đơn C++

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. :grin:

node *a = createNode(2);
2 Likes

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?

5 Likes

Em hiểu rồi ạ. Cảm ơn mọi người

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