PTA 求链式线性表的倒数第K项(C语言实现)

来源:互联网 发布:java环境搭建教程 编辑:程序博客网 时间:2024/06/13 04:54
#include <stdio.h>#include <stdlib.h>typedef struct LNode{    int data;    int length;    struct LNode *next;} LNode,*Linklist;Linklist L;void Read(int n){    int x;    LNode *p;    L=(Linklist)malloc(sizeof(LNode));    L->next = NULL;    L->length=0;    while(scanf("%d",&x)!=EOF)    {        if(x>=0)        {            p=(LNode *)malloc(sizeof(LNode));            p->data=x;            p->next=L->next;//这里用的头插法输入(倒序),遍历时直接找第K项            L->next= p;            L->length++;        }        else            return;    }}void Print(Linklist L,int n){    Linklist p=L->next;    if(p)    {        Linklist q;        q = L;        int flag=0;        while(q)        {            flag++;            if(flag<1||flag>L->length)            {                printf("NULL");                return;            }            q = q->next;            if(flag==n)            {                printf("%d",q->data);                return;            }        }    }    else        printf("NULL");}int main(){    int n;    scanf("%d",&n);    Read(n);    Print(L, n);    return 0;}


原创粉丝点击