java棧的使用 如何按現(xiàn)棧底再棧頂?shù)捻樞虼蛴∫粋€(gè)棧里的所有的元素 (java)?
如何按現(xiàn)棧底再棧頂?shù)捻樞虼蛴∫粋€(gè)棧里的所有的元素 (java)?如果堆棧是由您編寫(xiě)的,您可以按所需順序打印每個(gè)元素。如果堆棧的類是由其他人編寫(xiě)的,并且其他人為您提供了push、pop方法,那么估計(jì)只有
如何按現(xiàn)棧底再棧頂?shù)捻樞虼蛴∫粋€(gè)棧里的所有的元素 (java)?
如果堆棧是由您編寫(xiě)的,您可以按所需順序打印每個(gè)元素。如果堆棧的類是由其他人編寫(xiě)的,并且其他人為您提供了push、pop方法,那么估計(jì)只有所有的pop方法會(huì)從這個(gè)方法中出來(lái)= = = = = = = = = = = = = = = = = = = = = = = = =? 好吧,我不認(rèn)為有一個(gè)好的方法可以從外部完成,因?yàn)槎褩V挥羞@兩個(gè)操作,除非它也像Java中的堆棧一樣提供整個(gè)線性表的功能。但是如果需要向后遍歷,我認(rèn)為使用堆棧作為數(shù)據(jù)結(jié)構(gòu)是不合適的。您使用什么樣的數(shù)據(jù)結(jié)構(gòu)取決于您的需求。例如,你所做的是堆棧的概念,你真的只需要走出去進(jìn)入堆棧,然后你只需要堆棧。如果現(xiàn)在要遍歷整個(gè)集合,請(qǐng)使用最常用的順序表
(1)order stack(top用于存儲(chǔ)top元素的下標(biāo))判斷stack s empty:如果s->top==-1,則表示stack empty。判斷堆棧已滿:如果s->top==stackusize-1表示堆棧已滿。(2) 鏈棧(top是指向棧頂?shù)闹羔槪赶虍?dāng)前棧頂元素前面的頭節(jié)點(diǎn))判斷棧空:如果top->next==null,表示棧空。判斷堆棧已滿:當(dāng)系統(tǒng)沒(méi)有可用空間時(shí),無(wú)法申請(qǐng)空間來(lái)存儲(chǔ)要堆棧的元素,堆棧已滿。