7-19 求链式线性表的倒数第K项 (20 分)

7-19 求链式线性表的倒数第K项 (20 分)

给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
输入格式:

输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。
输出格式:

输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。

输入样例:

4 1 2 3 4 5 6 7 8 9 0 -1

输出样例:

7

注意要点
①输入是负数为结束标志而不是-1。
②我是用数组求的,求的时候开辟空间,尽量用动态数组Vector,静态 的容易超时和不够用。
③存的时候是从数组【0】开始的,输出倒数的位置应该是size-k。

注:下面这个是我看到的比较入门的,也比较清晰直观的vector用法整理,使用的时候可以参考一下。
vector用法教程

AC代码:

#include<iostream>
#include<stdlib.h>
#include<vector>
using namespace std;
int main(){
	vector<int> a;
	int n,x,i=0,count;
	cin>>n;
	while(cin>>x){
		if(x<0) break;
		else a.push_back(x);
	}
	count=a.size();
	if(n>0&&n<=count) cout<<a[count-n]<<endl;
	else cout<<"NULL";
	return 0;
}

版权声明:本文为weixin_44684161原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。