站長資訊網
最全最豐富的資訊網站

Java理論基礎–棧(總結分享)

本篇文章給大家帶來了java的相關知識,其中主要介紹了關于棧的相關問題,包括了棧的基本操作、棧的方法和屬性、棧的兩種實現方式等等,希望對大家有幫助。

Java理論基礎--棧(總結分享)

推薦學習:《java學習教程》

1.棧的概念

棧(stack)又名堆棧,作為一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。
它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。棧具有先進后出的特性。
Java理論基礎--棧(總結分享)

2.棧的基本操作

建棧:在使用棧之前,先建一個空棧
進棧,壓棧:往棧里面添加新元素
出棧:刪除棧頂元素
讀棧:查詢當前棧頂的元素
獲取棧的大小,清空棧。。。

3.棧的方法和屬性

Java理論基礎--棧(總結分享)
Java理論基礎--棧(總結分享)

Push為入棧
Pop為出棧

4.棧的兩種實現方式

① 數組(順序表)

數組必須事先定義固定的長度(元素個數)

Java理論基礎--棧(總結分享)

② 鏈表

鏈表可以看成是一個一個小房間組成的,每個房間都靠指針來指向下個房間,它是靠指針來關聯指向的鏈表是物理存儲單元上非連續的、非順序的存儲結構,數據元素的邏輯順序是通過鏈表的指針地址實現,每個元素包含兩個結點,一個是存儲元素的數據域 (內存空間),另一個是指向下一個結點地址的指針域。根據指針的指向,鏈表能形成不同的結構,例如單鏈表,雙向鏈表,循環鏈表等
Java理論基礎--棧(總結分享)

5.數組與鏈表的區別

數組
優點:

1、按照索引查詢元素速度快
2、按照索引遍歷數組方便

缺點:

1,事先定義固定的長度(元素個數)
2,不能適應數據動態地增減的情況。
當數據增加時,可能超出原先定義的元素個數,造成數組越界;
當數據減少時,造成內存浪費.

鏈表
優點:

1,不需要初始化容量,可以任意加減元素;
2,添加或者刪除元素時只需要改變前后兩個元素結點的指針域指向地址即可,所以添加,刪除很快

缺點:

1, 因為含有大量的指針域,占用空間較大; 查找元素需要遍歷鏈表來查找,非常耗時。

對于想要快速訪問數據,不經常有插入和刪除元素的時候,選擇數組 數據量較小,需要頻繁增加,刪除操作的場景
而對訪問元素時的效率沒有很高要求的話,選擇鏈表

6.棧的作用

6.1.保存局部變量:

函數里面也有可能要使用到局部變量,而不能總是用全局變量。則局部變量存儲到哪里合適,即不能讓函數嵌套的時候有沖突,又要注重效率。

6.2參數傳遞

傳遞參數的目的,是為了代碼可以重用,讓一種方法可以應用到

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久久久国产精品三级网| 九九精品国产亚洲AV日韩| 国产麻豆剧传媒精品国产AV| 久久亚洲AV无码精品色午夜麻豆 | 中文字幕精品1在线| 亚洲国产精品日韩av不卡在线 | 国产成人亚洲精品91专区高清| 99aiav国产精品视频| 青青青国产依人精品视频| 热99RE久久精品这里都是精品免费| 国产精品99久久久久久猫咪| 97精品伊人久久大香线蕉| 久久久久久一品道精品免费看| 国内午夜国产精品小视频| 精品水蜜桃久久久久久久| 国产成人精品视频网站| 成人区人妻精品一区二区三区| 精品亚洲456在线播放| 国产伦精品一区二区三区女| 精品国产_亚洲人成在线高清| 亚洲AV日韩AV永久无码绿巨人 | 亚洲av日韩av永久无码电影 | 久久精品国产亚洲av麻| 日韩一级精品视频在线观看| 精品国产福利第一区二区三区| 一本色道久久88精品综合| 亚洲 日韩 色 图网站| 日韩毛片一区视频免费| 日韩AV在线不卡一区二区三区| 无码人妻精品中文字幕免费东京热| 久久96国产精品久久久| 99久久免费国产精品热| 精品视频一区二区三区在线播放| 日韩人妻一区二区三区蜜桃视频| 日韩精品无码人成视频手机 | 丰满人妻熟妇乱又仑精品| 国产精品无码一区二区在线观一 | 久久精品国产亚洲AV蜜臀色欲| 国产A三级久久精品| 国内精品无码一区二区三区| 亚洲日韩精品无码一区二区三区|