void suaSoChan_X(List &L, int nX)
{
Node *pNew = createNode(nX);
Node *p;
Node *q;
int nY = timSoChan(L);
int nVT = timTuanTu(L,nY);
if ( L.pHeal == NULL || nVT == -1)
{
cout <<"Khong du dieu kien de sua!\n";
return;
}
else
{
if (nVT == 1)
{
p = L.pHeal;
pNew->pNext = p->pNext;
L.pHeal = pNew;
delete p ;
}
else
{
q = doAdvane(L,nVT - 1);
p = doAdvane_X(L,nY);
if (q != NULL)
{
pNew ->pNext = p->pNext;
q->pNext = pNew;
** if (p == L.pTail)
{
p = L.pTail;
pNew->pNext = NULL;
q->pNext = pNew;
} **
delete p;
}
}
}
}
Chào mọi người!
-
Đề bài : Tìm phần tử là số chẵn đầu tiên trong danh sách sau đó sữa thành một số X được nhập từ bàn phím.
-
int nY = timSoChan(L) : Trả về số chẵn trong danh sách.
-
int nVT = timTuanTu(L,nY) : Trả về vị trí số chẵn đó.
-
q = doAdvane(L,nVT - 1): Trả về con trỏ của vị trí trừ 1 (ví dụ 7 thì trả về con trỏ vị trí phần tử thứ 6)
-
p = doAdvane_X(L,nY): Trả về con trỏ của giá trị số chẵn.
-
Hiện mình đang làm bài tập danh sách liên kết đơn trong c++ , mình sữa ở phần tử đầu và giữa thì được nhưng phần tử cuối thì không được ( cái đoạn mình bỏ trong 2 dấu * ) mong mọi người giúp đỡ . Thanks you!
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?