链表的建立和输出
如题,代码如下,
- 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