Sau khi đã khởi tạo, nhập xuất danh sách Tại Đây thì ta viết code chèn nút vào danh sách:
CHÈN VÀO SAU NÚT Q
void addAfter (DList &l, DNode *q, DNode *new_node)
{
DNode *p = q->pNext;
if (q!=NULL) {
new_node->pNext = p; //(1)
if (p != NULL) p->pPrev = new_node; //(2)
new_node->pPrev = q; //(3)
q->pNext = new_node; //(4)
if (q == l.pTail) l.pTail = new_node;
}
else
addFirst (l, new_node); // chèn vào đầu ds
}
CHÈN VÀO TRƯỚC NÚT Q
void addBefore (DList &l, DNode q, DNode* new_node)
{ DNode* p = q->pPrev;
if (q!=NULL)
{ new_node->pNext = q; //(1)
q->pPrev = new_node; //(2)
new_node->pPrev = p; //(3)
if (p != NULL) p->pNext = new_node; //(4)
if (q == l.pHead) l.pHead = new_node;
}
else
addTail (l, new_node); // chèn vào cuối ds
}
Share this