主题:关于逆置单链表算法(c++)自己看书怎么也看不懂,求助,讲解一下
xiaoyuyongxi
[专家分:0] 发布于 2009-08-18 20:53:00
学了半年,自己什么也没有学会,重新拜读严教授的书,研读到“逆置单链表”时候,看到算法,怎么也看不懂,希望大虾们讲解一下算法,一直不懂,谢谢!
回复列表 (共3个回复)
沙发
c_sli [专家分:0] 发布于 2009-09-24 09:43:00
整个过程就是围绕这改变节点的指针域这一问题展开。
具体实现:
1. 两个节点指针 分别指向相邻的两个节点
2. 保存推进指针域的值
3. 改变指针域
4. 推进
如此循环 直到一个节点指针指向NULL
另一个节点指针指向尾节点。
LinkList *Reserver(LinkList *head)
{
if(head==NULL){
printf("NULL LINE!!\n");
return NULL;
}//条件放在定义变量之前
//关于指针的引用 引用前一定要检查,不然错误很多
LinkList *pro=NULL;
LinkList *temp=NULL; //临时指针,用于保存推进指针
while(head)
{
temp=head->next; //临时指针,用于保存推进指针
head->next=pro; //改变指针域
pro=head; //推进相邻指针域
head=temp; //推进相邻指针域
}
return pro;
}
板凳
nuciewth [专家分:670] 发布于 2009-09-29 16:58:00
直白的说就是带头结点单链表的建立。依次将链表中的结点按照头插法重新建立单链表。
3 楼
bqgq [专家分:0] 发布于 2009-09-29 23:54:00
我刚学到单链表, 无法解答……
我来回复