lesson 14 2 單鏈表查詢倒數第k個結點

2021-10-09 03:55:40 字數 522 閱讀 4295

題目描述:

已知乙個帶有表頭結點的單鏈表,結點結構為(data,link),假設該鍊錶只給出了頭指標list。在不改變鍊錶的前提下,請設計乙個盡可能高效的演算法,查詢鍊錶中倒數第k個位置上的結點。若查詢成功,演算法輸出該結點的data域的值,並返回1;否則,只返回0.

思路:定義兩個指標p和q,指標p用來遍歷整個鍊錶,指標q剛開始指向鍊錶第乙個元素;

當p走了k-1步後,q開始走,當p走到表尾時,p所指的恰為倒數第k個結點。

**:

int getnode(lnode *list,int k)

if(p==null)//k太大了

return 0;

while(p)

cout#include#include #include//數學函式,求平方根、三角函式、對數函式、指數函式...

#define maxsize 15

//用於使用c++的輸出語句

#includeusing namespace std;

t

倒序輸出單鏈表的內容

單鏈表是最簡單的資料結構,同時也是最常接觸的資料結構,這個問題也很常見,通常這個問題我們有兩種解決辦法。1.逆置單鏈表之後輸出 這篇文章講述了這樣的過程 但是這種方法不一定可行,因為這樣改變了單鏈表原來的結構 2.利用棧的後進先出的思想,首先我們正序輸出單鏈表中的每乙個節點,在輸出的過程中我們把這些...

單鏈表的查詢

單鏈表查詢可分為按值查詢和按序號查詢。include include typedef struct linknode node,linklist linklist表示結構體指標 linklist createlist end int n 尾插法建立鍊錶 linklist findval linkli...

查詢單鏈表中間元素

查詢單鏈表中間元素 include using namespace std struct linknode class linklist linklist void insertvalue int nvalue void reverse void reverse2 linknode findlast...