作业帮 > 综合 > 作业

谁能解释下下面的数据结构的算法啊~尤其是循环的部分

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/12 07:04:56
谁能解释下下面的数据结构的算法啊~尤其是循环的部分
linklist *reverlist(linklist *head) //逆置链表子函数
{
linklist *q,*p;
if(head && head->next)
{
p="head";
q="p-">next;
p->next=NULL;
while(q)
{
p="q";
q="q-">next
p->next=head;
head="p";
}
}
谁能解释下下面的数据结构的算法啊~尤其是循环的部分
//给你整理了一下:
linklist *reverlist(linklist *head) //逆置链表子函数
{
linklist *q,*p;
if(head && head->next) //如果链表不为空
{
p = head; //保存头指针到p
q = p->next; //保存第一节点到q
p->next = NULL; //空置头节点

while(q) //循环一个节点一个节点反转.当存在后续节点时
{
p = q; //保存当前节点
q = q->next; //取得下一节点,可能为NULL(到最后一个的时候)
p->next = head; //把上一个节点放到next中---倒置
head = p; //重新定位指针, head仍然是倒置后的链表头
}
}

return head;
}
再问: 这个出来之后的单链表是带头节点么?
再答: 原来的结构是如何的,现在就是如何的。 数据结构是不改变的。只是把链表倒置了。 我把链表的每一个组成单元叫“节点”。