Hỏi về cấu trúc dữ liệu

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");
}

Vấn đề :point_down: nè. :slight_smile:

4 Likes

em sửa lại r vẫn k được ạ, nhập vào khi in vẫn ra mảng cũ hicc

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