数据结构.一个实现带头结点的逆序连接void reverse(pointer h) { pointer p,q; p=h->next;h-next=null; while{p!=null}{q=p;p=p->next;q->next=h->next;h-next=q;}}请解释每一部的意思,本人愚笨,
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 23:42:37
数据结构.一个实现带头结点的逆序连接void reverse(pointer h) { pointer p,q; p=h->next;h-next=null; while{p!=null}{q=p;p=p->next;q->next=h->next;h-next=q;}}请解释每一部的意思,本人愚笨,
数据结构.一个实现带头结点的逆序连接
void reverse(pointer h) { pointer p,q; p=h->next;h-next=null;
while{p!=null}
{
q=p;p=p->next;q->next=h->next;h-next=q;}}
请解释每一部的意思,本人愚笨,
数据结构.一个实现带头结点的逆序连接void reverse(pointer h) { pointer p,q; p=h->next;h-next=null; while{p!=null}{q=p;p=p->next;q->next=h->next;h-next=q;}}请解释每一部的意思,本人愚笨,
此方法与插入排序类似!
p=h->next;//让p指向第一个结点;
h->next=null;//已经排好的链表是空的;
循环的意思中,从第一个结点开始,把每一个结点插入到已排好的链表中去,且插入在第一个位置;想一下,每次都插入在最前面 ,那么,原链表中最后一个插入后,就成第一个了;就完成了逆序了!
while{p!=null}
{//循环完所有的结点;
q=p;//标记要处理的结点,用来插入到原链表中作为第一个元素
p=p->next;//p指向下一个结点;
q->next=h->next;//下面两步,就是将q插入到原链表中,作为第一个元素了;
h-next=q;
}