給定一系列正整數,請設計乙個盡可能高效的演算法,查詢倒數第k個位置上的數字。
輸入首先給出乙個正整數k,隨後是若干非負整數,最後以乙個負整數表示結尾(該負數不算在序列內,不要處理)。
輸出倒數第k個位置上的資料。如果這個位置不存在,輸出錯誤資訊null。
412
3456
7890
-1
7
題目轉化:
將輸入的一串非負整數以尾插法正序放入鍊錶,求這一順序鍊錶的倒數第k項
<=>將輸入的一串非負整數以頭插法倒序放入鍊錶,求這一倒序鍊錶的第k項
因此,我們只需實現用頭插法將一串非負整數形成乙個鍊錶,再遍歷找到該鍊錶的正數第k項即可。
#include
#include
typedef
struct lnode *linklist;
typedef
struct lnode
list;
intmain()
else
i++;}
} k =
(linklist*
)malloc
(sizeof
(list));
k = l;
if(iprintf
("null");
else
printf
("%d"
, k->data);}
}
7 19 求鏈式線性表的倒數第K項 20分
不知道題目說的盡可能高效的演算法是啥,我就只按我會的來了,無語 這 能不能ac就看運氣,有時候最後兩個測試點會超時,再提交一次又能ac了。1 include 2 include 3 include 4 using namespace std 56 struct node7 1112 typedef ...
重啟C語言 求鏈式線性表的倒數第K項
求鏈式線性表的倒數第k項 給定一系列正整數,請設計乙個盡可能高效的演算法,查詢倒數第k個位置上的數字。輸入格式 輸入首先給出乙個正整數k,隨後是若干正整數,最後以乙個負整數表示結尾 該負數不算在序列內,不要處理 輸出格式 輸出倒數第k個位置上的資料。如果這個位置不存在,輸出錯誤資訊null。輸入樣例...
7 19 求鏈式線性表的倒數第K項 20分
給定一系列正整數,請設計乙個盡可能高效的演算法,查詢倒數第k個位置上的數字。輸入格式 輸入首先給出乙個正整數k,隨後是若干非負整數,最後以乙個負整數表示結尾 該負數不算在序列內,不要處理 輸出格式 輸出倒數第k個位置上的資料。如果這個位置不存在,輸出錯誤資訊null。輸入樣例 412 3456 78...