01/10/2018, 16:07
Hỏi về xóa phần tử trùng nhau trong danh sách liên kết đơn, chừa lại phần tử bên trái?
void Del_Node(List &L, int k)
{
Node *p = L.head;
Node *q = L.head;
int count = 1;
while (p != NULL)
{
if (count == k-1 )
{
q= p->Next;
p->Next = p->Next->Next;
delete q;
}
p = p->Next;
count++;
}
}
void Xoa_Trung(List &L)
{
Node *p = L.head;
Node *q = new Node;
int count = 1;
int temp = 1;
for (p; p->Next != NULL; p = p->Next)
{
for (q=p->Next; q != NULL; q = q->Next)
{
count++;
if (p->data == q->data)
{
Del_Node(L, count);
}
}
count = ++temp;
}
}
Mọi người xem giúp e đoạn code với ạ. Hàm Del_Node(L,x) e chạy riêng thì đúng. Nhưng vô hàm này thì e ko thể xóa được ạ. Muốn xóa thì phải để là Del_Node(L, count+1);
mà nếu để như vậy thì xóa đi phần tử bên phải phần tử cần xóa. nên là bài bị sai mất ạ. Mọi người xem giúp e. e cảm ơn
Bài liên quan
Bạn up nốt đoạn code của hàm
Del_Node
lên mọi người biết mới nhận xét được chứe post code thiếu mất. ths a đã nhắc ạ.