问题
问答题
设计将带表头的链表逆置算法。
答案
参考答案:解析:设单循环链表的头指针为head,类型为LinkList。逆置时需将每一个结点的指针域做一修改,使其原前趋结点成为后继。如要更改q结点的指针域时,设S指向其原前趋结点,P指向其原后继结点,则只需进行q—>next—>s;操作即可,算法描述如下:
void invert(LinkList*head)
{ ∥逆置head指针所指向的单循环链表
linklist*p,*q,*S;
q=he
p—head—>next;
while(p!=head) ∥当表不为空时,逐个结点逆置
{ s=q;
q=P;
p=p—>next;
q—>next=s;
}
p—>next=q;
,