1. 程式人生 > 其它 >3-5 求鏈式線性表的倒數第K項 (20 分) C++

3-5 求鏈式線性表的倒數第K項 (20 分) C++

技術標籤:C++資料結構

**

3-5 求鏈式線性表的倒數第K項 (20 分)

**
給定一系列正整數,請設計一個儘可能高效的演算法,查詢倒數第K個位置上的數字。

輸入格式:
輸入首先給出一個正整數K,隨後是若干非負整數,最後以一個負整數表示結尾(該負數不算在序列內,不要處理)。

輸出格式:
輸出倒數第K個位置上的資料。如果這個位置不存在,輸出錯誤資訊NULL。

輸入樣例:

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

輸出樣例:

7

***我的程式碼:***使用的是頭插法,然後再順序查詢

#include <iostream>
#include <vector>
using namespace std; struct List { int data; struct List* next; }; struct List *creat() { List *head,*s; head=(struct List*)malloc(sizeof(struct List)); head=NULL; while(1){ s=(struct List*)malloc(sizeof(struct List)); cin>>s->data; if(s->
data<0){ break; } s->next=head; head=s; } return head; } int main() { struct List *L; int n; cin>>n; L=creat(); for(int i=0;i<n;i++){ if(i==0); else L=L->next; } if(L) cout<<L->
data; else cout<<"NULL"; return 0; }

在這裡插入圖片描述