当前位置: 代码迷 >> C语言 >> [求助]关于链表
  详细解决方案

[求助]关于链表

热度:217   发布时间:2006-02-22 22:05:00.0
[求助]关于链表

请教一个问题,为什么它显示最后输入的数.有什么办法能全部显示出来!
我采用的是链式!
#include <stdio.h>
#include <stdlib.h>
creat();
output();
struct shuju
{
int a;
struct shuju *next;
};
struct shuju *h;
main()
{
int i;
h=NULL;
for(i=0;i<5;i++)
creat();
output();
}
creat()
{
struct shuju *q,*t;
q=(struct shuju *)malloc(sizeof(struct shuju));
q->next=NULL;
t=q;
if(h==NULL)
{
h=t=q;
printf("nter data to a:");
scanf("%d",&t->a);
}
else
{
t->next=q;
t=q;
printf("enter data to a:");
scanf("%d",&t->a);
}
}
output()
{
struct shuju *q;
q=(struct shuju *)malloc(sizeof(struct shuju));
q=h;
while(q)
{
printf("%5d",q->a);
q=q->next;
}

}

搜索更多相关的解决方案: 链表  

----------------解决方案--------------------------------------------------------
你没有返回头指针啊
----------------解决方案--------------------------------------------------------
链表建的有问题
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
*creat();
output(struct shuju *s);
struct shuju
{
int a;
struct shuju *next;
};
struct shuju *h;
main()
{
int i;
h=NULL;
for(i=0;i<5;i++)
creat();
output(h);
}
*creat()
{
struct shuju *q,*t;
q=(struct shuju *)malloc(sizeof(struct shuju));
scanf("%d",&q->a);
q->next=NULL;
t=q;
while(a!=0)
{
if(h==NULL)
h=t=q;
else
t->next=q;
t=q;
q=(struct shuju *)malloc(sizeof(struct shuju));
scanf("%d",&q->a);
}
t->next=NULL;

return h;
}
output(struct shuju *s)
{
struct shuju *q;
q=(struct shuju *)malloc(sizeof(struct shuju));
q=s;
while(q!==NULL)
{
printf("%5d",q->a);
q=q->next;
}

}

应该是这样子吧,
我也是才学不久,错了不要骂我哈

[此贴子已经被作者于2006-2-23 17:48:35编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案