| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:[求助]单链表逆置的问题
取消只看楼主 加入收藏
bjtusq
Rank: 2
来 自:BJTU
等 级:论坛游民
帖 子:141
专家分:20
注 册:2006-8-5
收藏
 问题点数:0 回复次数:3 
[求助]单链表逆置的问题
我参考别人的源码写了一个单链表逆置的程序
但是有问题
我自己又找不到
请大虾们帮帮忙吧
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10

typedef struct lnode
{
int data;
struct lnode *next;
}lnode;


void initlinklist(lnode *head)
{
lnode *s,*r;
int x;

head=(lnode *) malloc ( sizeof (lnode));//创建头节点
r=head;//把头节点给r

for(int i=0;i<maxsize;i++)//循环从第一个节点开始赋值
{
printf("请输入数据:");
scanf("%d",&x);
s=(lnode *) malloc ( sizeof (lnode));//创建s节点
s->data=x;//给s的data赋值
r->next=s;//r指向s
r=s;//s的值给r
printf("\n第%d个节点为 %d\n",i+1,x);
}
printf("输入的单链表为:\n");//输出单链表
lnode *t;
t=head->next;
for(i=0;i<10;i++)
{
printf("%d\t",t->data);
t=t->next;
}

}

void reverse(lnode *head)
{
lnode *p,*s=NULL,*h;
p=(lnode *)malloc(sizeof(lnode));
p=head->next;//这里出问题了
while(p)
{
p=p->next;
}
p=head->next;
if((h=(lnode *)malloc(sizeof(lnode)))==NULL) exit(1);
h->next=p;
head->next=NULL;

for(int i=0;i<10;i++)
{
p=h->next;
h->next=p->next;
p->next=NULL;

if(s==NULL)
s=p;
else
{
p->next=s;
s=p;
}
}
head->next=s;
free(h);
}

void main()
{
lnode *head;
head=NULL;
initlinklist( head);
reverse( head);
}
搜索更多相关主题的帖子: 单链 
2006-11-11 14:13
bjtusq
Rank: 2
来 自:BJTU
等 级:论坛游民
帖 子:141
专家分:20
注 册:2006-8-5
收藏
得分:0 
似乎是到reverse的函数时那个head就没东西了

[url][/url]
2006-11-11 14:14
bjtusq
Rank: 2
来 自:BJTU
等 级:论坛游民
帖 子:141
专家分:20
注 册:2006-8-5
收藏
得分:0 
大虾们帮帮忙啊

[url][/url]
2006-11-11 14:14
bjtusq
Rank: 2
来 自:BJTU
等 级:论坛游民
帖 子:141
专家分:20
注 册:2006-8-5
收藏
得分:0 
问题解决了
把参数都改成lnode* &head就可以了

[url][/url]
2006-11-11 18:51
快速回复:[求助]单链表逆置的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023965 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved