資料結構基礎 鍊錶的倒數第M個結點的查詢

2021-09-30 07:34:34 字數 561 閱讀 1277

目標:在乙個給定的鍊錶中用o(n)級的演算法,找到倒數第m個結點。

方法:利用倆個指標,指標距離m,然後從指標頭同步後移,直到有乙個指標指向鍊錶尾為止。

注意:判斷指標是否移動到鍊錶尾結點的標誌是elem->next==null,倒數第m個節點的定義,這直接關係到,同時後移的兩個節點之間的間距。

**:element *findmtolashelement(element *head, int m)

element *curpos=head;

element *mcurpos;

if(!head)

return 0;

for(int i=0;iif(curpos->next)

curpos=curpos->next;

else

return 0;

mcurpos=curpos;

curpos=head;

while(mcurpos->next)

mcurpos=mcurpos->next;

curpos=curpos->next;

return curpos;

資料結構習題 求鍊錶的倒數第m個元素(PTA)

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

鍊錶中的倒數第m個元素

題目 給定乙個單向鍊錶,請設計乙個既節省時間又節省空間的演算法來找出該鍊錶中的倒數第m個元素。實現這個演算法。倒數第m個元素 是這樣規定的 當m 0時,鍊錶的最後乙個元素 尾元素 將被返回。分析 單鏈表是只能正向遍歷的,並不適合查詢倒數第m個元素,如果需要這類操作,在實際應用中也不會用到單鏈表 也許...

求鍊錶的倒數第m個元素

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