鏈表卸亮、堆棧忽妒、數(shù)組、隊(duì)列

隊(duì)列、堆棧段直、鏈表和數(shù)組這些概念傻傻分不清楚吃溅,經(jīng)過(guò)查閱資料稍微總結(jié)了一下。
數(shù)據(jù)結(jié)構(gòu):描述數(shù)據(jù)元素邏輯關(guān)系的集合鸯檬。隊(duì)列就是一種先進(jìn)先出的邏輯結(jié)構(gòu)决侈,是一種先進(jìn)后出的邏輯結(jié)構(gòu),家譜是一種樹(shù)形的邏輯結(jié)構(gòu)喧务!數(shù)組赖歌、鏈表、堆棧和隊(duì)列是最基本的數(shù)據(jù)結(jié)構(gòu)蹂楣。
數(shù)據(jù)存儲(chǔ)結(jié)構(gòu):描述數(shù)據(jù)在計(jì)算機(jī)中存儲(chǔ)方式俏站。常見(jiàn)的有兩種:順序存儲(chǔ)讯蒲,非順序存儲(chǔ)痊土。數(shù)組就是順序存儲(chǔ),數(shù)據(jù)存儲(chǔ)的地址是連續(xù)的墨林;鏈表是非順序存儲(chǔ)赁酝,數(shù)據(jù)存儲(chǔ)的地址是不連續(xù)的。

  • 隊(duì)列:隊(duì)列的特點(diǎn)是先入先出 (FIFO) 旭等,可以使用數(shù)組和鏈表來(lái)實(shí)現(xiàn)酌呆。

    圖1.1 隊(duì)列

    隊(duì)列只允許在隊(duì)尾添加數(shù)據(jù),在隊(duì)頭刪除數(shù)據(jù)搔耕。但是可以查看隊(duì)頭和隊(duì)尾的數(shù)據(jù)隙袁。還有一種是雙端隊(duì)列,在兩端都可以插入和刪除:
    圖1.2 雙端隊(duì)列

  • 堆棧:這里討論的是數(shù)據(jù)結(jié)構(gòu)中的堆(heap)和棧(stack)弃榨,而不是內(nèi)存中的堆棧菩收。棧:是一種連續(xù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),特點(diǎn)是存儲(chǔ)的數(shù)據(jù)先進(jìn)后出(FILO)鲸睛∧榷可以使用數(shù)組和鏈表來(lái)實(shí)現(xiàn)。
    堆:是一棵完全二叉樹(shù)結(jié)構(gòu)官辈,特點(diǎn)是父節(jié)點(diǎn)的值大于(小于)兩個(gè)子節(jié)點(diǎn)的值(分別稱(chēng)為最大堆和最小堆)箱舞。它常用于管理算法執(zhí)行過(guò)程中的信息迁客,應(yīng)用場(chǎng)景包括堆排序轧坎,優(yōu)先隊(duì)列等博杖。

    圖2.1 棧

圖2.2 最大堆
  • 鏈表: 鏈表是在非連續(xù)的內(nèi)存單元中保存數(shù)據(jù)渠啤,并且通過(guò)指針將各個(gè)內(nèi)存單元鏈接在一起锦爵,最右一個(gè)節(jié)點(diǎn)的指針指向 NULL 哟忍。鏈表不需要提前分配固定大小存儲(chǔ)空間限寞,當(dāng)需要存儲(chǔ)數(shù)據(jù)的時(shí)候分配一塊內(nèi)存并將這塊內(nèi)存插入鏈表中臼疫。
    圖3.1 鏈表結(jié)構(gòu)

    在鏈表中查找第 n 個(gè)數(shù)據(jù)以及查找指定的數(shù)據(jù)的時(shí)間復(fù)雜度是 O(N) ,但是插入和刪除數(shù)據(jù)的時(shí)間復(fù)雜度是 O(1) 胡桨,因?yàn)橹恍枰{(diào)整指針就可以:
    圖3.2 添加元素

    圖3.3 刪除元素

    向上面這樣的鏈表結(jié)構(gòu)在插入和刪除的時(shí)候編程會(huì)比較困難官帘,因?yàn)樾枰涀‘?dāng)前節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),這樣才能完成插入和刪除昧谊。為了簡(jiǎn)便通常使用帶有頭節(jié)點(diǎn)的鏈表:
    圖3.4 帶有頭節(jié)點(diǎn)的單鏈表

    上面的鏈表是單鏈表刽虹,此外還有雙鏈表,就是節(jié)點(diǎn)中包含指向下一個(gè)節(jié)點(diǎn)的指針和指向上一個(gè)節(jié)點(diǎn)的指針:
    圖3.5 雙向鏈表

    不帶有頭節(jié)點(diǎn)的雙向鏈表在插入和刪除數(shù)據(jù)的時(shí)候也不會(huì)出現(xiàn)單鏈表那樣的問(wèn)題呢诬。此外還有一種鏈表是循環(huán)鏈表涌哲,它是將雙向鏈表的頭尾相接:
    圖3.6 雙向循環(huán)鏈表

    向循環(huán)雙向鏈表和循環(huán)鏈表中插入或者從中刪除數(shù)據(jù)只是多移動(dòng)幾個(gè)指針。
  • 數(shù)組: 組是使用一塊連續(xù)的內(nèi)存空間保存數(shù)據(jù)尚镰,保存的數(shù)據(jù)的個(gè)數(shù)在分配內(nèi)存的時(shí)候就是確定的阀圾。
    在數(shù)組中訪(fǎng)問(wèn)數(shù)組中第 n 個(gè)數(shù)據(jù)的時(shí)間花費(fèi)是 O(1) ,查找一個(gè)指定的數(shù)據(jù)則是 O(N)狗唉。當(dāng)向數(shù)組中插入或者刪除數(shù)據(jù)的時(shí)候初烘,最好的情況是在數(shù)組的末尾進(jìn)行操作,時(shí)間復(fù)雜度是O(1) 分俯,但是最壞情況是插入或者刪除第一個(gè)數(shù)據(jù)肾筐,時(shí)間復(fù)雜度是 O(N) 。在任意位置插入或者刪除數(shù)據(jù)的時(shí)候缸剪,后面的數(shù)據(jù)全部需要移動(dòng)吗铐,移動(dòng)的數(shù)據(jù)還是和數(shù)據(jù)個(gè)數(shù)有關(guān)所以總體的時(shí)間復(fù)雜度仍然是 O(N) 。
    圖4.1 數(shù)組插入元素
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杏节,一起剝皮案震驚了整個(gè)濱河市唬渗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奋渔,老刑警劉巖镊逝,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異卒稳,居然都是意外死亡蹋半,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén)充坑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)减江,“玉大人,你說(shuō)我怎么就攤上這事捻爷”沧疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵也榄,是天一觀的道長(zhǎng)巡莹。 經(jīng)常有香客問(wèn)我司志,道長(zhǎng),這世上最難降的妖魔是什么降宅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任骂远,我火速辦了婚禮,結(jié)果婚禮上腰根,老公的妹妹穿的比我還像新娘激才。我一直安慰自己,他們只是感情好额嘿,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布瘸恼。 她就那樣靜靜地躺著,像睡著了一般册养。 火紅的嫁衣襯著肌膚如雪东帅。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,874評(píng)論 1 314
  • 那天球拦,我揣著相機(jī)與錄音靠闭,去河邊找鬼。 笑死刘莹,一個(gè)胖子當(dāng)著我的面吹牛阎毅,可吹牛的內(nèi)容都是我干的焚刚。 我是一名探鬼主播点弯,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼矿咕!你這毒婦竟也來(lái)了抢肛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤碳柱,失蹤者是張志新(化名)和其女友劉穎捡絮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體莲镣,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡福稳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瑞侮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片的圆。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖半火,靈堂內(nèi)的尸體忽然破棺而出越妈,到底是詐尸還是另有隱情,我是刑警寧澤钮糖,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布梅掠,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阎抒。R本人自食惡果不足惜酪我,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望且叁。 院中可真熱鬧祭示,春花似錦、人聲如沸谴古。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掰担。三九已至汇陆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間带饱,已是汗流浹背毡代。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勺疼,地道東北人教寂。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像执庐,于是被迫代替她去往敵國(guó)和親酪耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容