實驗專案3 5 求鍊錶線性表的倒數第K項

2021-07-15 11:12:21 字數 504 閱讀 9880

題目描述:

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

輸入格式說明:

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

輸出格式說明:

輸出倒數第k個位置上的資料。如果這個位置不存在,輸出錯誤資訊「null」。

解題思路:定義兩個指標變數p和q,在讀入並建立第1個鍊錶結點後均指向該結點。每讀入乙個資料,則建立乙個新結點插在鍊錶尾部,p指標隨之移動;當p指標移動到第k個結點時,q指標開始與p指標同步移動;當p指標移動到鍊錶最後乙個結點時,q指標所指元素為倒數第k個結點。

#include

#include

struct node

;typedef struct node *

list;

list create()

else

}}main()

線性表的鍊錶實驗

1 單鏈表的建立。先建立頭結點head,將頭結點的指標域置為空 然後新建乙個結點p,把此新結點鏈結到單鏈表的尾端或始端。2 單鏈表的插入。新建乙個結點p,指定插入位置 從單鏈表頭開始查詢結點位置。3 單鏈表的刪除。指定刪除位置 從單鏈表頭開始查詢結點位置。這是學資料結構的第乙個實驗,很簡單,不過當初...

線性表 鍊錶

線性表的adt list.h 線性表的c 抽象類宣告 templateclass list 單鏈表節點的定義 link.h 單鏈表節點類的定義 template class link link link nextval null 鍊錶的實現宣告 成員函式的是實現 鍊錶的實現宣告 include st...

線性表 鍊錶

include include typedef int elemtype typedef struct node lnode,linklist linklist createlinklist1 頭插法 linklist createlinklist2 尾插法 void lengthlinklist ...