有5 個(gè)元素,其入棧次序?yàn)锳,B,C,D,E,在各種出棧次序中,以元素C,D最先出棧的次序有哪幾個(gè)?
- 教育綜合
- 2023-05-30 17:44:07
有五個(gè)元素,其進(jìn)棧次序?yàn)閍,b,c,d,e
它是說棧第一次出現(xiàn)出棧的情況時(shí),是c在出棧。 懂了吧。 其中一種:A進(jìn)B進(jìn),C進(jìn)C出,D入D出,E入E出,B出,A出。 是C,D最先出棧吧。棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是
出棧序列可能是:DCBEA,選擇D選項(xiàng)。
知識(shí)點(diǎn):棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。
解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。
擴(kuò)展資料
棧的限制是僅允許在表的一端進(jìn)行插入和刪除運(yùn)算。這一端被稱為棧頂,相對(duì)地,把另一端稱為棧底。
向一個(gè)棧插入新元素又稱作進(jìn)棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;
從一個(gè)棧刪除元素又稱作出?;蛲藯#前褩m斣貏h除掉,使其相鄰的元素成為新的棧頂元素。
參考資料來源:百度百科-棧
有點(diǎn)不明白,入棧出棧不是說先進(jìn)后出,那既然入的順序定了,出的順序不是只有一種?
題目中并沒有說一定是所有元素入棧結(jié)束了,再出棧的。所以,出棧入棧同時(shí)進(jìn)行時(shí),出棧順序就不確定了,會(huì)有非常多的情況。比如三個(gè)元素:ABC,A入,B入,B出,C入,C出,A出,則出棧順序?yàn)锽CA。C第一個(gè)出,D第二出的序列有:CDEBA,CDBEA,CDBAE。簡(jiǎn)單說,因?yàn)锳比B先入棧,所以就是B一定比A先出棧。若有5個(gè)元素abcde依次全部入棧,然后進(jìn)行兩次出棧操作,則當(dāng)前棧頂元素是?
堆棧操作是第一進(jìn),最后出,堆棧順序中的五個(gè)元素是1,2,3,4,5,然后是堆棧頂部的5,堆棧的第一個(gè)出,5出,堆棧的第二個(gè)出,4出,堆棧的頂部是3。計(jì)算機(jī)中進(jìn)棧順序?yàn)閍bcde,則出棧順序有哪些
答案選3。
因?yàn)檫x項(xiàng)3中第一個(gè)出棧的是D,說明此時(shí)A,B,C都已經(jīng)在棧中(C為棧頂),所以下一個(gè)出棧的可以是C,然后E進(jìn)棧后隨即出棧,所以到E這里都是對(duì)的。此時(shí)棧里面只有A,B,其中B為棧頂,所以下一個(gè)出棧的只能是B,不能是A。
p = S ->top; //獲取棧頂結(jié)點(diǎn)
S ->top = S ->top ->next; //棧頂指針下移一位
free(p); //釋放結(jié)點(diǎn)p
擴(kuò)展資料:
棧的順序存儲(chǔ)結(jié)構(gòu)是利用內(nèi)存中的一片起始位置確定的連續(xù)存儲(chǔ)區(qū)域來存放棧中的所有元素,另外為了指示棧頂?shù)臏?zhǔn)確位置,還需要引入一個(gè)棧頂指示變量top,采用順序存儲(chǔ)結(jié)構(gòu)的棧稱為順序棧(sequence stack)。
設(shè)數(shù)組data[MAXSIZE]為棧的存儲(chǔ)空間,其中MAX-SIZE是一個(gè)預(yù)先設(shè)定的常數(shù),為允許進(jìn)棧結(jié)點(diǎn)的最大可能數(shù)目,即棧的容量。初始時(shí)???,top等于0。
當(dāng)top不等于0時(shí),data[0]為棧底元素,即為當(dāng)前停留在棧中時(shí)間最長(zhǎng)的元素;而data[top-1]為最后入棧的元素,即為棧頂元素。
參考資料來源:百度百科-順序棧