方法一:先遍歷一次鍊錶,得到長度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...