标题:求助]用递归逆输出单项链表?
只看楼主
曲昌文
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-22
 问题点数:0 回复次数:3 
求助]用递归逆输出单项链表?

已知la是带头结点的单链表的头指针,试编写逆须输出表中各元素的递归方法。(C语言)
请问下边写的哪错了?
#include<stdio.h>

struct S
{
int data;
struct S *link;
};

main()
{
void *fun(struct S *);
struct S *la,*p;
int i;

p=la;
scanf("%d",&i);
if(i!=0) /*i=0时输入结束。*/
{
p=(struct S *)malloc(sizeof(struct S));
p->data=i;

while(1)
{
scanf("%d",&i);
if(i==0)
break;
else
{
p->link=(struct S *)malloc(sizeof(struct S));
p=p->link;
p->data=i;
}
}

p->link=NULL;
fun(la);

free(la);
free(p);
}
else
printf("wu shu ju shu ru\n");
getch();
}

void *fun(struct S *la) /*逆输出线性链表。*/
{
printf("%d\n",la->data);
if(la->link!=NULL)
fun(la->link);
else
free(la);
}

搜索更多相关主题的帖子: 递归 项链 输出 
2007-06-19 08:58
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 

链表没连起来


2007-06-19 09:34
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
[CODE]

if(i!=0) /*i=0时输入结束。*/
{
p=(struct S *)malloc(sizeof(struct S));
p->data=i;
/*
la=(struct S *)malloc(sizeof(struct S));
la->data=i;
la->link=p;
*/

while(1)
{
scanf("%d",&i);
if(i==0)
break;
else
{
p->link=(struct S *)malloc(sizeof(struct S));
p=p->link;
p->data=i;
}
}

p->link=NULL;
fun(la);

free(la);
free(p);
}

[/CODE]

2007-06-19 09:37
曲昌文
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-5-22
得分:0 
有p=la;了。

http://blog..cn/bfgl我的博客
2007-06-20 02:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-148580-1-1.html




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

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