1-6 求链式线性表的倒数第K项 (20 分)
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
输入格式:
输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。
输出格式:
输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。
输入样例:
4 1 2 3 4 5 6 7 8 9 0 -1
结尾无空行
输出样例:
7
第一种方法,有一个小错误但还没找到,主要思路就是先把输入的元素输入到链表中,再用count得到它的元素个数,用count减去K再加上一就得到正数的第几个元素了,再用单链表中的正序查找就可以找到了
#include<stdio.h>
#include<stdlib.h>
typedef struct lnode
{
int data;
struct lnode *next;
}LNode,*LinkList;
LinkList CreateList();
LinkList Get_LinkList(LinkList L,int K);
LinkList CreateList(int *count)//用的是尾插法
{
LinkList L,s,r;
int x;
L=(LinkList)malloc( sizeof(LNode));//创建头节点
L->next=NULL;
r=<