//cho e hỏi hàm thêm node p trước node q ạ…tại sao kia lại phải cap phất cho node h vậy ạ…mà node k trong vòng lặp mình ko phải cấp phát ạ
//
link https://paste.ubuntu.com/25566190/
void ThemNode_p_TruocNode_q(LIST &l, NODE *p)
{
int x;
cout << "\nNhap node q: ";
cin >> x;
NODE *q = KhoiTaoNode(x);
NODE *h = new NODE; // <- (*)
// duyệt từ đầu danh sách để tìm node q cần thêm vào sau
for (NODE *k = l.pHead; k != NULL; k = k->pNext)
{
if (k->data == q->data)
{
NODE *g = KhoiTaoNode(p->data);
g->pNext = k; // cho node p cần thêm vào sau node q trỏ đến node nằm sau node k <=> cập nhật mối liên kết
h->pNext = g; // cho node q - cũng chính là node k trỏ đến node p
}
h = k;
}
}