Đoạn hàm này của e đã chạy nhưng còn một lỗi mà em chưa sửa được đó là nếu trong danh sách liên kết q là node đầu tiên của danh sách và nó không phải là node duy nhất thì sẽ không thêm được p vào trước q.
void them_P_Truoc_Q(LIST &l, NODE *p){
int x;
cout<<"\nNhap x: ";
cin>>x;
NODE *q = createNode(x);
if(q->data == l.pHead->data && l.pHead->pNext == NULL){
themVaoDau(l,p);
}
else{
NODE *g = new NODE; // NODE g chinh la node giu lien ket node nam truoc node q trong danh sach
for(NODE *k = l.pHead; k != NULL; k = k->pNext){
if(q->data == k->data){
//Them node p vao sau node g
NODE *h = createNode(p->data);
NODE *tg = g->pNext;
h->pNext = tg;
g->pNext = h;
}
g = k;// giu lien ket node nam truoc node q trong danh sach
}
}
}
Hien thi danh sach lien ket don
1 2 3 4
Nhap lua chon cua ban: 4
Nhap gia tri NODE can them vao truoc: 69
Nhap x: 1
Hien thi danh sach lien ket don
1 2 3 4