主题:请问大家这个问题
chaorou11
[专家分:0] 发布于 2006-05-12 22:01:00
LINKLIST *invertlink(LINKLIST *)
{
LINKLIST *p,*q,*r;
q=null;p=head;
while(p!=null)
{r=q,q=p;这句话的意思是不是r和p都指向一个结点
p=p->next;这句话的意思是色么
q->next=r;这句话的意思是色么
return q;
}
回复列表 (共3个回复)
沙发
findlyhl [专家分:280] 发布于 2006-05-13 10:01:00
你这个应该是实现逆转链表的功能吧?
它的思想是在不增加新的链结点空间的前提下,通过改变链结点指针域地址来实现逆序
r = q; 意思为:r一直跟随q的指向,当q往下遍历的时候,r就指向q的上一个链结点
q = p; 意思为:q一直跟随p的指向,当p往下遍历的时候,q就指向其上一个链结点
p = p->link意为:p遍历整个链表直到p为空。
q->link = r意为: 把结点r连到结点q上。
最后返回q的地址,则成一个逆序链表
板凳
chaorou11 [专家分:0] 发布于 2006-05-13 10:06:00
是的
3 楼
findlyhl [专家分:280] 发布于 2006-05-13 10:20:00
你这个应该是实现逆转链表的功能吧?
它的思想是在不增加新的链结点空间的前提下,通过改变链结点指针域地址来实现逆序
r = q; 意思为:r一直跟随q的指向,当q往下遍历的时候,r就指向q的上一个链结点
q = p; 意思为:q一直跟随p的指向,当p往下遍历的时候,q就指向其上一个链结点
p = p->link意为:p遍历整个链表直到p为空。
q->link = r意为: 把结点r连到结点q上。
最后返回q的地址,则成一个逆序链表
能明白不?说的有点罗嗦~~~~~~[em2]
我来回复