<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手撕408|數(shù)據(jù)結(jié)構(gòu)之棧 (4)|今天文末有抽獎(jiǎng)

          共 1373字,需瀏覽 3分鐘

           ·

          2021-06-01 14:36

          通知:冷月目前提供免費(fèi)408 1對(duì)1輔導(dǎo),有需要的同學(xué)可以加我微信:lengyue408。  


          文末61冷月寵粉福利,記得參加,另外一定要把知識(shí)點(diǎn)也學(xué)會(huì)哦。


           棧是一個(gè)很經(jīng)典的數(shù)據(jù)結(jié)構(gòu),一定要重點(diǎn)掌握。



          手撕408系列之?dāng)?shù)據(jù)結(jié)構(gòu)棧,冷月出品必是精品,大家好,我是學(xué)長(zhǎng)冷月。關(guān)注下方“學(xué)長(zhǎng)冷月”可獲得更多408答題技巧及資料。


          當(dāng)我們學(xué)習(xí)一個(gè)新的數(shù)據(jù)結(jié)構(gòu)時(shí),一定要從數(shù)據(jù)結(jié)構(gòu)的三要素出發(fā)。邏輯結(jié)構(gòu)、物理結(jié)構(gòu)以及數(shù)據(jù)的運(yùn)算。棧的運(yùn)算就不多說(shuō)了,無(wú)非就是增刪改查、初始化、判空等。


          邏輯結(jié)構(gòu)


          棧是一個(gè)先入后出(First In Last Out)的數(shù)據(jù)結(jié)構(gòu),也就是說(shuō)棧只能在一端進(jìn)行插入或者刪除操作。那么我們就可以對(duì)棧下一個(gè)定義:棧是一個(gè)元素只能先入后出的線性表(受限制的線性表)。


          棧是一個(gè)受限制的線性表,那為什么我們要對(duì)它受限制呢?其實(shí)棧中的操作,使用數(shù)組或者鏈表其實(shí)都可以實(shí)現(xiàn)。但是特定的數(shù)據(jù)結(jié)構(gòu)作用于特定的場(chǎng)景,數(shù)組或者鏈表暴露給用戶的接口很多,我們?cè)谟行﹫?chǎng)景不需要給用戶太多的接口,而當(dāng)我們用到一種先入后出的場(chǎng)景時(shí),棧就排上了用場(chǎng)。


          我們可以看下面這張圖:


          假設(shè),上面這個(gè)是一個(gè)裝盤子的桶,一號(hào)盤子在最下面,二號(hào)盤子在中間,三好盤子上最上面。如果要放入四號(hào)盤子,那么只能放在三號(hào)盤子的上面;如果要取盤子也只能先取三號(hào)盤子。相信大家能看懂這個(gè)例子,棧的思想也就是和這個(gè)裝盤子的過(guò)程有相似之處。


          最后在補(bǔ)充兩個(gè)概念:

          棧頂指針(top):允許插入或刪除的那一端

          棧底指針(buttom):固定的,不允許插入或刪除的那一端

           


          物理結(jié)構(gòu)


          棧的本質(zhì)既然也是線性表,那么它的物理結(jié)構(gòu)肯定既有順序?qū)崿F(xiàn)也有鏈?zhǔn)綄?shí)現(xiàn)。


          順序?qū)崿F(xiàn)也叫做順序棧,其底層實(shí)現(xiàn)為數(shù)組。結(jié)構(gòu)體的定義如下圖所示:


          熟悉數(shù)組的同學(xué)可以看出,這個(gè)結(jié)構(gòu)體其實(shí)就是對(duì)數(shù)組加了一個(gè)棧頂指針。


          其中,真題對(duì)于順序棧的考察較多,我們要注意以下幾個(gè)概念,用s來(lái)代表一個(gè)棧的變量:

          棧頂指針:s.top

          初始化時(shí):s.top = -1

          棧頂元素:s.data[s.top]

          進(jìn)棧操作

          IF 棧不滿  ; s.top ++ ; s.data[s.top] = data;

          出棧操作

          IF 棧非空  ; data = s.data[s.top]  ; s.top --

          棧空

          s.top == -1

          棧滿

          s.top == MaxSize -1

          當(dāng)前棧長(zhǎng)

          s.top + 1


          鏈?zhǔn)?/span>實(shí)現(xiàn)也叫做鏈棧,其結(jié)構(gòu)如下圖所示:




          熟悉鏈表的同學(xué)應(yīng)該已經(jīng)看出,鏈棧類似于沒(méi)有頭結(jié)點(diǎn)的一個(gè)單鏈表。用Lhead代表?xiàng)m斨羔樦赶蚴坠?jié)點(diǎn),也就是棧頂元素。使用鏈棧的優(yōu)點(diǎn)就是方便棧的元素動(dòng)態(tài)的增加,不會(huì)出現(xiàn)棧滿的情況。其余的操作就和單鏈表非常類似,冷月就不多講了。


          明天別忘了來(lái)做題!


          請(qǐng)幫冷月點(diǎn)一下旁邊的在看,再點(diǎn)一個(gè)贊,一鍵三連支持一下!您的每一次點(diǎn)擊都是對(duì)冷月莫大的鼓勵(lì),謝謝!!


          點(diǎn)擊下面圖片即可參加61冷月寵粉福利,一鍵三連就不用我多說(shuō)了吧!






          點(diǎn)“在看”給我一朵小黃花

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  卡一卡二无码 | 日本福利视频一区 | 欧美成人性爱在线观看 | 色黄大色黄女片免费看直播 | 大鸡巴在线视频网站 |