链表的建立和输出,该如何处理
链表的建立和输出
如题,代码如下,
我知道是指针的问题,输不出链表。但是能力不足,求高人指点,
------解决方案--------------------
修改如下:
如题,代码如下,
- 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.****.net/u/20120319/15/0751ad00-bad3-481b-9f3a-fed7409cb9cc.html