#include<stdio.h>
#include<malloc.h>
typedef struct lianbiao{//定义新变量
int data;
struct lianbiao *next;
}*List;//定义
List creatnode(List L);
void search(List L,int k);
int main(){
int k;
scanf("%d",&k);
List head;//不带头结点
head=creatnode(head);
search(head,k);
return 0;
}
List creatnode(List L){
L=NULL;
List p,tail=NULL;
while(1){
p=(List)malloc(sizeof(struct lianbiao));
scanf("%d",&p->data );
if(p->data ==-1)break;
p->next =NULL;
if(L==NULL)L=p;
else tail->next =p;
tail=p;
}
return L;
}
void search(List L,int k){
List p=L;
int cnt=0;
while(p){
cnt++;
p=p->next ;
}
if(k>cnt||k<1){
printf("NULL");
return ;
}
else{
cnt=cnt-k+1;
}
int flag=0;
p=L;////重置
while(p){
flag++;
if(flag==cnt){
printf("%d",p->data );
return ;
}
p=p->next ;
}
}
输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。。