一個隊列如何找出倒數第k個值

問題:一個隊列如何找出倒數第k個值?

解:

第一種:如果這個隊列是一個單項指針的隊列,裏面的結構如下

                                        

這樣的話,可以建兩個指針,一個循環到底的時候,控制兩次指針相差k個元素,一個指針指向隊列尾,另一個指針指向隊列倒數第k個元素。

第二種:如果這個隊列是一個單項指針的隊列,裏面的結構如下

                                         

id 標識是第幾個,tatalcount標識總共是多少個。只要循環遍歷鏈表totalcount-id =k就好了。

第三種:如果這個隊列是一個雙向指針的隊列,裏面的結構如下

                     

pre 是前驅指針,next是後驅指針,item是元素值

這樣在查找倒數第k的時候,只要從後往前遍歷即可。

總結:

第一種方法,佔用的資源最少,插入也相對容易一些。

第二種方法,插入相對麻煩一些,如果k在隊列靠前,遍歷更有優勢。

第三種方法,插入相對麻煩一些,如果k在隊列靠尾,遍歷更有優勢。


發佈了60 篇原創文章 · 獲贊 122 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章