隊(duì)列的操作(1)隊(duì)列的一些常用的操作創(chuàng)建隊(duì)列銷毀隊(duì)列清空隊(duì)列進(jìn)隊(duì)列出隊(duì)列獲取隊(duì)頭元素獲取隊(duì)列元素 隊(duì)列的順序存儲實(shí)現(xiàn)
寫代碼



隊(duì)列的鏈?zhǔn)酱鎯?shí)現(xiàn)(1)鏈?zhǔn)酱鎯?shí)現(xiàn)







順序隊(duì)列的瓶頸(1)順序隊(duì)列線性表的第一個元素作為隊(duì)頭線性表表的最后一個元素作為隊(duì)尾(2)入隊(duì)的新元素是在線性表的最后,時間復(fù)雜度為O(1)(3)出隊(duì)時需要將后續(xù)的所有元素向前移動,時間復(fù)雜度為O(n)問題:如何將出隊(duì)的時間復(fù)雜度降為O(1)?順序隊(duì)列的優(yōu)化方案(1)定義front使其始終代表隊(duì)頭的下標(biāo)出隊(duì)時將隊(duì)頭元素返回,且front++(2)定義rear使其始終代表隊(duì)尾下一個元素的下標(biāo)入隊(duì)時將新元素插入,且rear++沒有必要只將下標(biāo)為0的位置定義為隊(duì)頭
寫代碼





鏈?zhǔn)疥?duì)列的瓶頸(1)鏈?zhǔn)疥?duì)列線性表的第一個元素作為隊(duì)頭線性表的最后一個元素作為隊(duì)尾(2)入隊(duì)的新元素是在線性表的最后,時間復(fù)雜度為O(n)(3)出隊(duì)的元素即鏈表的第一個元素,時間復(fù)雜度O(1)問題:如何將入隊(duì)操作的時間復(fù)雜度降低到O(1)鏈?zhǔn)疥?duì)列的優(yōu)化方案(1)定義rear指針始終指向鏈表中的最后一個元素入隊(duì)時將新元素通過rear插入隊(duì)尾,且將rear指向新元素








棧與隊(duì)列











新聞熱點(diǎn)
疑難解答