日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

四.栈和队列

發(fā)布時(shí)間:2024/9/30 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 四.栈和队列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

棧(stack):限定僅在線性表表尾進(jìn)行插入和刪除操作的線性表
允許插入和刪除的一端稱為棧頂;另一端稱為棧尾,后進(jìn)先出,簡稱LIFO結(jié)構(gòu)

棧的插入操作叫做進(jìn)棧,也稱圧棧,入棧
棧的刪除操作叫做出棧,也有的叫做彈棧
兩棧共享空間是在數(shù)組的兩端,讓他們向中間靠攏 兩指針相差1為棧滿
對于棧來說,如果是兩個相同數(shù)據(jù)類型的棧,則可以通過數(shù)組的兩端作為棧底的方法讓兩個棧共享數(shù)據(jù),這樣就可以最大化的利用數(shù)組的空間.

鏈棧是不需要頭結(jié)點(diǎn)的.

順序棧需要事先確定一個固定的長度,存在內(nèi)存空間問題浪費(fèi)問題,優(yōu)勢是存取時(shí)定位很方便
鏈棧是要求每一個元素都有指針域,增加一些內(nèi)存開銷,優(yōu)勢是對于棧的長度無限制

棧的應(yīng)用:遞歸--------裴波那契數(shù)列實(shí)現(xiàn)
int Fbi(int i)
{
If(i<2)
return i==0?0:1;
return Fbi(i-1)+Fbi(i-2);//這里的Fbi就是函數(shù)自己,它在調(diào)用自己*
}

遞歸:直接調(diào)用自己或通過一系列的調(diào)用語句間接的調(diào)用自己的函數(shù),稱作遞歸函數(shù)
每個遞歸定義必須至少有一個條件,滿足時(shí)遞歸不再進(jìn)行,即不再引用自身而是返回值退出

棧的應(yīng)用:四則運(yùn)算表達(dá)式求職
逆波蘭表示:一種不需要括號的后綴表達(dá)法稱為逆波蘭表示(RPN)

隊(duì)列(Queue):允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作的線性表

允許插入的一端叫做隊(duì)尾,允許刪除的一端稱為隊(duì)頭

循環(huán)隊(duì)列:把這種頭尾相接的順序存儲結(jié)構(gòu)稱為循環(huán)隊(duì)列
優(yōu)點(diǎn):解決移動數(shù)據(jù)的時(shí)間損耗,時(shí)間復(fù)雜度O(n)變成O(1)

循環(huán)隊(duì)列和鏈隊(duì)列差異?
時(shí)間上,基本操作都是O(1);不過循環(huán)隊(duì)列是事先申請好空間,使用期間不釋放,對于鏈隊(duì)列,每次申請和釋放結(jié)點(diǎn)也會存在一些時(shí)間開銷
空間上,循環(huán)隊(duì)列必須有一個固定的長度,所以就有了存儲元素個數(shù)和空間浪費(fèi)的問題,而鏈隊(duì)列不存在這個問題,盡管他需要一個指針域,產(chǎn)生空間上的開銷

總結(jié)

以上是生活随笔為你收集整理的四.栈和队列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。