| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4249 人关注过本帖
标题:[求助]c语言数据结构的问题(求单链表逆置算法)
只看楼主 加入收藏
喝酸奶的鱼
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-8
收藏
 问题点数:0 回复次数:14 
[求助]c语言数据结构的问题(求单链表逆置算法)
求这个结构的单链表的逆置算法,比如原来的顺序是1->2->3->4->5->NULL,逆置后变成5->4->3->2->1->NULL;
struct asc
{ int a;
char b;
struct asc *next;
};
我写了一个,编译真确,但运行不对,请高手帮我看看,谢谢诶
struct asc *NiZhi(struct asc *l) /* l是链表的头指针*/
{
struct asc *p,*q,*m,*n,*head;
p=l;
head=l;
m=l;
p->next=n;
while(n->next!=NULL)
{
while(m->next->next!=NULL)
m=m->next;
q=m->next;
m->next=NULL;
q->next=n;
p->next=q;
p=p->next;
m=n;
}
p=head->next;
head->next=NULL;
n->next=head;
return p;
}
搜索更多相关主题的帖子: 数据结构 c语言 单链 算法 
2007-03-22 21:45
喝酸奶的鱼
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-8
收藏
得分:0 

要在原表上逆置,最好不要建立新的链表,谢谢诶


学习很重要
2007-03-22 21:47
高达
Rank: 1
等 级:新手上路
威 望:1
帖 子:261
专家分:0
注 册:2006-10-27
收藏
得分:0 

暂时还不懂 数据结构还想向你请教请教.......


哎 时间....................
2007-03-22 22:11
喝酸奶的鱼
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-8
收藏
得分:0 
我也初学

学习很重要
2007-03-22 22:25
高达
Rank: 1
等 级:新手上路
威 望:1
帖 子:261
专家分:0
注 册:2006-10-27
收藏
得分:0 
以下是引用喝酸奶的鱼在2007-3-22 22:25:16的发言:
我也初学

你学的速度比我 快很多倍了
我现在才看到顺序栈.........


哎 时间....................
2007-03-22 22:47
喝酸奶的鱼
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-8
收藏
得分:0 
我们看的差不多吧,我还没看顺序栈呢

学习很重要
2007-03-22 22:53
zcs302
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-6
收藏
得分:0 
快关灯了,明天中午试试给你弄出来吧,应该没问题
2007-03-22 22:59
高达
Rank: 1
等 级:新手上路
威 望:1
帖 子:261
专家分:0
注 册:2006-10-27
收藏
得分:0 
我这本书顺序栈是前20页 我用了20天

哎 时间....................
2007-03-22 23:03
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
# include<stdio.h>
# include<malloc.h>
struct list
{
int data;
struct list *next;
};
struct list *creat();
void reverse(struct list *head);
void print(struct list *head);
void main()
{
struct list *head;
head=creat();
reverse(head);
return;
}
struct list *creat()
{
struct list *head,*p,*rear;
int x;
head=(struct list*)malloc(sizeof(struct list));
rear=head;
scanf("%d",&x);
puts("input the list end with '0':\n");
while(x)
{
p=(struct list*)malloc(sizeof(struct list));
p->data=x;
rear->next=p;
rear=p;
scanf("%d",&x);
}
rear->next=NULL;
puts("the list you input is: ");
print(head->next);
return head->next;
}
void reverse(struct list *head)
{
struct list *p,*q,*s;
p=head;
s=head;
q=p->next;
s->next=NULL;
while(q)
{
p=q;
q=q->next;
p->next=s;
s=p;
}
head=p;
puts("\nthe reversed list is: ");
print(head);
}
void print(struct list *head)
{
struct list *p;
p=head;
while(p)
{
printf("%3d",p->data);
p=p->next;
}
}
2007-03-23 08:44
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
到数据结构那看,看看还行不行.

倚天照海花无数,流水高山心自知。
2007-03-23 21:23
快速回复:[求助]c语言数据结构的问题(求单链表逆置算法)
数据加载中...
 
   



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

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