PTA 資料結構與演算法題目集(中文)6-4 鏈式表的按序號查詢
阿新 • • 發佈:2018-12-24
6-4 鏈式表的按序號查詢(10 分)
本題要求實現一個函式,找到並返回鏈式表的第K個元素。
函式介面定義:
ElementType FindKth( List L, int K );
其中List
結構定義如下:
typedef struct LNode *PtrToLNode;
struct LNode {
ElementType Data;
PtrToLNode Next;
};
typedef PtrToLNode List;
L
是給定單鏈表,函式FindKth
要返回鏈式表的第K
個元素。如果該元素不存在,則返回ERROR
。
裁判測試程式樣例:
#include <stdio.h> #include <stdlib.h> #define ERROR -1 typedef int ElementType; typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List; List Read(); /* 細節在此不表 */ ElementType FindKth( List L, int K ); int main() { int N, K; ElementType X; List L = Read(); scanf("%d", &N); while ( N-- ) { scanf("%d", &K); X = FindKth(L, K); if ( X!= ERROR ) printf("%d ", X); else printf("NA "); } return 0; } /* 你的程式碼將被嵌在這裡 */
輸入樣例:
1 3 4 5 2 -1
6
3 6 1 5 4 2
輸出樣例:
4 NA 1 2 5 3
作者: 陳越單位: 浙江大學時間限制: 400ms記憶體限制: 64MB程式碼長度限制: 16KBElementType FindKth( List L, int K ){
int index = 0;
while(L){
++index;
if(index==K){
return L->Data;
}
L = L->Next;
}
return ERROR;
}