PDA

View Full Version : Cần giúp đở danh sách liên kết vòng



vo_giâct
27-04-2009, 08:40
mình đang học cấu trúc dữ liệu nhưng khi học đến Danh sách liên kết vòng thì chẳng hiểu gì hết. có bác nào có lòng tốt chihọc rồi chỉ lại dùm mình với

zeldery
27-04-2009, 08:46
Danh sách liên kết vòng giống danh sách liên kết đơn thôi, có điều phần tử cuối trỏ vào phần tử đầu thành một vòng. Lợi thế ủa nó là chỉ cần lưu con trỏ chỉ đến một phần tử bất kì mà thôi, không cần phải ở vị trí đầu tiên.

vo_giâct
27-04-2009, 09:38
mình có đoạn code này chưa hiểu bạn có thể chạy tường bước dùm mình được k
void removehead(lít &1)
{
NODE *p=1.phead;
if(p==NULL) return;
if(l.phead=l.ptail) l.phead=l.ptail=NULL;
else
{
l.phead=p->next;
if(p==l.ptail)
l.ptail->pnext=l.phead;
}
delete p;
}

changsangoc
05-05-2009, 12:49
void removehead(lít &1)
{
NODE *p=1.phead;->khởi tạo node và gán nó = node đầu
if(p==NULL) return;-> nếu danh sách rỗng(1.phead=NULL)thì thoát khỏi ct
if(l.phead=l.ptail) l.phead=l.ptail=NULL;->dslk có 1 node thì cho nó =NULL
else
{
l.phead=p->next;->nếu là head thì head trỏ tới node tiếp theo
if(p==l.ptail)->nếu là tail
l.ptail->pnext=l.phead;->thì tail trỏ tới head
}
delete p;->xóa node p;
}