本篇文章為大家帶來了java的相關知識,其中主要介紹了關於堆疊的相關問題,包括了堆疊的基本操作、堆疊的方法和屬性、堆疊的兩種實現方式等等,希望對大家有幫助。
推薦學習:《java學習教學》
堆疊(stack)又稱為堆疊,作為一種資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。
它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端稱為棧頂,相對地,將另一端稱為棧底。棧具有先進後出的特性。
建構堆疊:在使用堆疊之前,先建一個空堆疊
#進棧,壓棧:往棧裡面新增元素
出棧:刪除棧頂元素
讀棧:查詢目前棧頂的元素
取得堆疊的大小,清空堆疊。 。 。
陣列必須事先定義固定的長度(元素個數)
鍊錶可以看成是一個小房間組成的,每個房間都靠指標指向下個房間,它是靠指標來關聯指向的鍊錶是物理儲存單元上非連續的、非順序的儲存結構,資料元素的邏輯順序是透過鍊錶的指標位址實現,每個元素包含兩個結點,一個是儲存元素的數據域(記憶體空間),另一個是指向下一個結點位址的指標域。根據指標的指向,鍊錶能形成不同的結構,例如單鍊錶,雙向鍊錶,循環鍊錶等
1、依照索引查詢元素速度快
2、依照索引遍歷陣列方便
1,事先定義固定的長度(元素個數)
2,無法適應資料動態地增減的情況。
當資料增加時,可能超出原先定義的元素個數,造成數組越界;
當資料減少時,造成記憶體浪費.
1,不需要初始化容量,可以任意加減元素;
2,添加或刪除元素時只需要改變前後兩個元素結點的指標域指向位址即可,所以添加,刪除很快
1, 因為含有大量的指標域,佔用空間較大; 尋找元素需要遍歷鍊錶來找出,非常耗時。
對於想要快速存取數據,不經常有插入和刪除元素的時候,選擇數組數據量較小,需要頻繁增加,刪除操作的場景
而對訪問元素時的效率沒有很高要求的話,選擇鍊錶
函數裡面也有可能要使用到局部變量,而不能總是用全域變數。則局部變數儲存到哪裡合適,即不能讓函數嵌套的時候有衝突,又要注重效率。
傳遞參數的目的,是為了程式碼可以重複使用,讓一種方法可以應用到更多的場合,而不需要為N種情況寫N套類似的代碼。那用什麼方法來做參數的傳遞呢?可以選擇:
暫存器傳參的衝突,可以把暫存器的值暫時壓入堆疊裡面
#1)堆疊是每個函數架構的基礎,實現了函數的重複利用。
2)問題發生的時候,可以利用堆疊來了解問題發生的情況。
3) 堆疊是建構出作業系統多任務模式的基礎。
推薦學習:《java教學》
以上是Java理論基礎--堆疊(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!