链表的一些基本操作,但是就是不对,大家帮忙看看。。谢谢
#include<stdio.h>#include<malloc.h>
#define elemtype int
#define NULL 0
typedef struct Lnode{
elemtype data;
struct node *next;
}Lnode,*Linklist;
int createlist(Linklist L,int n){
int i;
Lnode *L=(Linklist)malloc(sizeof(Lnode));
if(!L) return 0;
L->next=NULL;
Linklist p;
printf("请输入%d个数据元素以构成链表:\n",n);
for(i=0;i<n;i++){
Lnode *p=(Linklist )malloc(sizeof(Lnode));
if(!p) return 0;
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
int showlist(Linklist L){
Linklist p;
p=(Linklist)malloc(sizeof(Lnode));
p=L->next;
printf("此时的线性表为:\n");
while(p){
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int getelem(Linklist L,int i,elemtype e){
int j;
Linklist p;
p=(Linklist)malloc(sizeof(Lnode));
if(!p) return 0;
p=L->next;
j=1;
while(p&&j<i){
p=p->next;
++j;
}
if(!p||j>i) return 0;
e=p->data;
printf("查找的第%d个元素为%d\n",i,e);
return 1;
}
void main()
{
int n,i,a;
Linklist L;
printf("请输入链表长度:\n");
scanf("%d",&n);
createlist(L,n);
showlist(L);
printf("请输入你要查找的元素的位置:\n");
scanf("%d",&i);
getelem(L,i,a);
}
大家说说哪里不对??为什么不对??希望详细点,本人初学。。。谢谢