01/10/2018, 11:58
Tạo Danh sách liên kết đơn
chào mọi người, em muốn nhờ mọi người giải thích giúp em đoạn code này ạ:
(đoạn code trong bài danh sách liên kết đơn ạ)
NODE* GetNODE(int x) // con trỏ GETNODE,nó dùng có mục đích gì ạ?
{
NODE *p = new NODE; // cái này có phải tạo ra một con trỏ p, trỏ vào 1 NODE không ạ?
if(p == NULL)
{
return NULL;
}
p->Data = x;
p->pNext = NULL;
return p; // mục đích của return p cho ta cái gì ạ?
}
Bài liên quan
Hàm này có chức năng tạo ra một node mới chứa giá trị
x
và lệnhreturn
trả về node đó.hàm này dùng để tạo ra một node để thêm vào danh sách.
4 dòng đầu là cấp phát bộ nhớ rồi kiểm tra xem có cấp phát được không nếu không thì trả về NULL.
2 dòng tiếp theo là gán cho node->data là x, cho nó trỏ tới null (để xử lý tiếp)
cuối cùng là trả về một Node, Node này là còn trỏ.
Bạn xem thêm cái hàm addtail vd:
Lúc mới đầu cái danh sách nó chỉ có một node p (1) tạo ra từ hàm GetNode ở trên, con trỏ phead với ptail đều trỏ tới p, nhưng khi bạn muốn thêm môt node vào đuôi nữa thì lúc này con trỏ ptail trỏ tới p(2) và p(2) biến thành con trỏ ptail. Lý do tại sao hàm GetNode nó trả về NODE* là vậy tại vì nó cần phải trỏ đi đâu đó khi bạn muốn thêm một node vào. p(1) p(2) …p(n) được tạo ra từ GetNode.