读书人

链表的建立和输出,该如何处理

发布时间: 2012-03-26 15:46:56 作者: rapoo

链表的建立和输出
如题,代码如下,

C/C++ code
#include "stdio.h"#include "malloc.h"typedef struct link{    int Element;    struct link *next;}Linklist;void Create(Linklist *L,int a[],int n){    Linklist *s;    int i;    L = (Linklist *)malloc(sizeof(Linklist));    L->next = NULL;    for(i = 0;i<n;i++)    {        s = (Linklist *)malloc(sizeof(Linklist));        s->Element = a[i];        s->next = L->next;        L->next = s;    }}void print(Linklist *L){    Linklist *s = L->next;    while(s!=NULL)    {        printf("%d",s->Element);        s = s->next;    }}int main(){   Linklist *L;   int Element[5];   int j;   for(j = 0;j < 5;j++)   {       scanf("%d",&Element[j]);   }   Create(L,Element,5);   print(L);}

我知道是指针的问题,输不出链表。但是能力不足,求高人指点,

[解决办法]
修改如下:

C/C++ code
Linklist* Create(Linklist *L,int a[],int n){    Linklist *s, *tmp;    int i;    L = (Linklist *)malloc(sizeof(Linklist));    L->next = NULL;    tmp = L;    for(i = 0;i<n;i++)    {        s = (Linklist *)malloc(sizeof(Linklist));        s->Element = a[i];        s->next = tmp->next;        tmp->next = s;        tmp = tmp->next;    }        return L;}另外:main函数中得调用也需要修改一下:L = Create(L,Element,5);
[解决办法]
看下我写的这个哦。仔细阅读下就好了。其实就是指针作为参数传递的问题。
http://topic.csdn.net/u/20120319/15/0751ad00-bad3-481b-9f3a-fed7409cb9cc.html

读书人网 >C语言

热点推荐