#include <stdio.h>
#include <stdlib.h>
//构建链式表
typedef struct Lnode{
int date;
struct Lnode *next;
}Lnode,*LinkList;
//插入一整个链表(头插法)
void CreateList_H(LinkList L,int n){
L=(Lnode*)malloc(sizeof(Lnode));
L->next=NULL;
int i;
for(i=0;i<n;i++){
LinkList p=(Lnode*)malloc(sizeof(Lnode));
scanf("%d",&p->date);
p->next=L->next;
L->next=p;
}
}
int main()
{
int i,j;
scanf("%d",&i);
LinkList L,q;
CreateList_H(L,i);
q=L->next;
for(j=0;j<i;j++){
printf("%d",q->date);
q=q->next;
}
return 0;
}
链表的头结点没有返回。
代码修改如下:
#include <stdio.h>
#include <stdlib.h>
//构建链式表
typedef struct Lnode{
int date;
struct Lnode *next;
}Lnode,*LinkList;
//插入一整个链表(头插法)
LinkList CreateList_H(LinkList L,int n){ //返回链表头
L=(Lnode*)malloc(sizeof(Lnode));
L->next=NULL;
int i;
for(i=0;i<n;i++){
LinkList p=(Lnode*)malloc(sizeof(Lnode));
scanf("%d",&p->date);
p->next=L->next;
L->next=p;
}
return L;
}
int main()
{
int i,j;
scanf("%d",&i);
LinkList L=0,q;
L = CreateList_H(L,i);
q=L->next;
for(j=0;j<i;j++){
printf("%d",q->date);
q=q->next;
}
return 0;
}
在函数中给指针参数分配空间是没用的,不能改变传入参数的指针值