當前位置:網站首頁>棧的初理解1
棧的初理解1
2022-01-27 03:51:05 【w-ib】
什麼是棧(stack)?
棧其實就是一種數據結構。它是一種運算受限的線性錶。限定僅在錶尾進行插入和删除操作的線性錶。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧删除元素又稱作出棧或退棧,它是把棧頂元素删除掉,使其相鄰的元素成為新的棧頂元素
棧的特點
先進後出
棧的圖片
棧到底怎麼用?用在哪裏?
接下來就用一個小題來理解
一個棧的入棧序列是 a,b,c,d,e,則棧的不可能的輸出序列是( )
a) edcba
b) decba
c) dceab
d) abcde
根據棧的特點先進後出可知,a選項,符合棧的特點先進後出,a到e依次入棧在出棧正好符合選項,對於b和d選項,有些人可能會認為必須全部入棧後才能出棧,其實不然,可以入棧在直接出棧,這樣b d選項就顯然易見是對的,而對於c選項,a不可能在b的前面拿出來,故選c選項。
接下來向大家演示Stack的源碼
class Stack<E> extends Vector<E> {
/**
* Creates an empty Stack.
*/
public Stack() {
}
通過idea查看stack的源碼可以得知Stack的方法並不多,並且Stack也繼承了一個類
public class Test222 {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(12);
stack.push(23);
stack.push(32);
//將三個數字入棧
System.out.println(stack.pop());//查看棧頂元素並删除
System.out.println(stack.peek());//查看棧頂元素
System.out.println(stack.isEmpty());//棧中是否還有元素
}
}
上面代碼段介紹了Stack方法的使用
未完待續..
版權聲明
本文為[w-ib]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270351045604.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的