Mọi người cho em hỏi hàm chèn p sau q của em sai ở đâu ạ. em cảm ơn
#include <iostream>
using namespace std;
struct node{
int data;
struct node *next;
};
typedef struct node NODE;
NODE *newnode(int x){
NODE *p = new NODE;
if(p == NULL){
cout << "Khong du bo nho" <<endl;
return NULL;
}
p->data = x;
p->next = NULL;
return p;
}
struct list{
node *pHead;
node *pTail;
};
typedef struct list LIST;
void newlist(LIST &l){
l.pHead = NULL;
l.pTail = NULL;
}
int ktrong(LIST l){
if(l.pHead == NULL){
return 0;
}
}
void addhead(LIST &l, NODE *p){
if(ktrong(l) == 0){
l.pHead = l.pTail =p;
}
else{
p->next = l.pHead;
l.pHead = p;
}
}
void addtail(LIST &l, NODE *p){
if(ktrong(l) == 0){
l.pHead = l.pTail =p;
}
else{
l.pTail->next = p;
l.pTail = p;
}
}
void readlist(LIST l){
cout <<"Danh sach da nhap"<<endl;
for(NODE *k =l.pHead; k!=NULL; k = k->next){
cout << k->data<<" ";
}
cout <<endl;
}
void chensau(LIST &l, NODE *q, NODE *p){
if(q == NULL){
addhead(l,p);
}
else if(q = l.pTail){
addtail(l,p)
}
else{
p->next = q->next;
q->next = p;
}
}
main(){
LIST l;
newlist(l);
int n;
cout <<"Nhap so phan tu: "<<endl;
cin >> n;
for(int i =0; i<n; i++){
int x;
cout <<"Nhap gia tri phan tu " << i+1 << ": ";
cin >> x;
NODE *p = newnode(x);
addtail(l,p);
}
readlist(l);
int x, y;
cout <<"Nhap q: ";
cin >> x;
cout <<"Nhap p: ";
cin >> y;
NODE *q = newnode(x);
NODE *p = newnode(y);
chensau(l,q,p);
readlist(l);
system("pause");
}