| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 1120 人关注过本帖
标题:[求助]c语言数据结构的问题(求单链表逆置算法)
收藏  订阅  推荐  打印 
喝酸奶的鱼
Rank: 1
等级:新手上路
帖子:33
积分:430
注册:2007-3-8
[求助]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-3-22 21:45
喝酸奶的鱼
Rank: 1
等级:新手上路
帖子:33
积分:430
注册:2007-3-8

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


学习很重要
2007-3-22 21:47
高达
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:261
积分:2722
注册:2006-10-27

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


哎 时间....................
2007-3-22 22:11
喝酸奶的鱼
Rank: 1
等级:新手上路
帖子:33
积分:430
注册:2007-3-8

我也初学

学习很重要
2007-3-22 22:25
高达
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:261
积分:2722
注册:2006-10-27

以下是引用喝酸奶的鱼在2007-3-22 22:25:16的发言:
我也初学

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


哎 时间....................
2007-3-22 22:47
喝酸奶的鱼
Rank: 1
等级:新手上路
帖子:33
积分:430
注册:2007-3-8

我们看的差不多吧,我还没看顺序栈呢

学习很重要
2007-3-22 22:53
zcs302
Rank: 2
等级:注册会员
帖子:42
积分:520
注册:2007-3-6

快关灯了,明天中午试试给你弄出来吧,应该没问题
2007-3-22 22:59
高达
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:261
积分:2722
注册:2006-10-27

我这本书顺序栈是前20页 我用了20天

哎 时间....................
2007-3-22 23:03
w362034710
Rank: 2
等级:注册会员
帖子:169
积分:1818
注册:2006-12-2

# 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-3-23 08:44
nuciewth
Rank: 12Rank: 12Rank: 12
来自:我爱龙龙
等级:版主
威望:93
帖子:9521
积分:95068
注册:2006-5-23

到数据结构那看,看看还行不行.

倚天照海花无数,流水高山心自知。
2007-3-23 21:23
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.050917 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved