求鍊錶的倒數第m個元素

2021-10-06 09:38:24 字數 557 閱讀 5919

方法一:先遍歷一次鍊錶,得到長度n,在從頭遍歷找到第n-m+1個元素。

elementtype find

( list l,

int m )

if(m > n)

//m的位置不合法

int i =1;

p=l;

for(

; i <= n-m+1;

++i)

p = p-

>next;

return p-

>data;

}

方法二:定義兩個指標變數p1,p2,在初始時都指向l的頭結點,指標p1先開始移動,當p1指標移動到m個節點時,p2指標開始與p1同步移動,當p1指標移動到鍊錶最後乙個節點時,p2指標所指的元素為倒數第m個節點

elementtype find

( list l,

int m )

return p2-

>date;

}

求鍊錶的倒數第m個元素

習題3.5 求鍊錶的倒數第m個元素 20分 請設計時間和空間上都盡可能高效的演算法,在不改變鍊錶的前提下,求鏈式儲存的線性表的倒數第m 0 0 個元素。elementtype find list l,int m 其中list結構定義如下 typedef struct node ptrtonode s...

求鍊錶的倒數第m個元素

請設計時間和空間上都盡可能高效的演算法,在不改變鍊錶的前提下,求鏈式儲存的線性表的倒數第m 0 個元素。函式介面定義 elementtype find list l,int m 其中list結構定義如下 typedef struct node ptrtonode struct node typede...

求鍊錶的倒數第m個元素

習題3.5 求鍊錶的倒數第m個元素 20 分 請設計時間和空間上都盡可能高效的演算法,在不改變鍊錶的前提下,求鏈式儲存的線性表的倒數第m 0 個元素。elementtype find list l,int m 其中list結構定義如下 typedef struct node ptrtonode st...