PTA 求鏈式線性表的倒數第K項(C語言實現)


 
#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;
}


 



                        
                        
                 

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com