陣列、鍊錶、樹等資料結構適用於儲存資料庫應用中的資料記錄,它們常常用於記錄那些現實世界的物件和活動的資料,便與資料的訪問:插入、刪除和查詢特定資料項
而棧和佇列更多的是作為程式設計師的工具來使用。他們主要作為構思演算法的輔助工具,而不是完全的資料儲存工具。這些資料結構的生命週期比那些資料庫型別的結構要短很多。在程式操作執行期間它們才被建立,通常它們去執行某項特殊的任務,當任務完成後就被銷毀
棧和佇列的訪問是受限制的,即在特定時刻只有乙個資料項可以被讀取或刪除
棧和佇列是比陣列和其他資料結構更加抽象的結構,是站在更高的層面對資料進行組織和維護
棧的主要機制可用陣列來實現,也可以用鍊錶來實現。優先順序佇列的內部實現可以用陣列或者一種特別的樹——堆來實現。
棧只允許訪問乙個資料項:即最後插入的資料。移除這個資料項後才能訪問倒數第二個插入的資料項。它是一種「後進先出」的資料結構。
棧最基本的操作是出棧(pop)、入棧(push),還有其他擴充套件操作,如檢視棧頂元素,判斷棧是否為空、是否已滿,讀取棧的大小等
/**
* 實現乙個鏈式棧結構
* @param */
class linkstack
// 入棧操作
public void push(t val)
// 出棧,並把出棧元素的值返回
public t pop()
// 檢視棧頂元素
public t peek()
// 判斷棧空
public boolean empty()
// 返回棧裡面元素的個數
public int size()
/*** 鍊錶的節點型別定義
* @param */
static class entry
}}public class linkstacktest
system.out.println();
}
執行結果:
484 56 21 23
棧 順序 鏈式 java實現
棧的定義 棧 stack 是限制僅在表的一端進行插入和刪除運算的線性表。1 通常稱插入 刪除的這一端為棧頂 top 另一端稱為棧底 bottom 2 當表中沒有元素時稱為空棧。3 棧為後進先出 last in first out 的線性表,簡稱為 lifo 表。棧的修改是按後進先出的原則進行。每次刪...
實現鏈式棧
棧作為一種資料結構,它按照後進先出的原則儲存資料,只能在棧頂進行插入和刪除操作的特殊線性表。按照儲存方式不同,棧可以分為順序棧和鏈式棧。實現鏈式棧需要注意 1 採用鍊錶儲存結構 2 不需要預定義記憶體空間,不存在 鏈式棧滿 這種情況 3 解決了順序棧中沒有合理分配記憶體大小的難題。以下為具體實現 在...
棧 鏈式棧的實現
一 2 對於棧而言,通常允許插入 刪除操作的一端被稱為棧頂 top 另一端被稱為棧底 buttom 3 從棧頂壓入元素稱為進棧 push 4 從棧頂刪除元素稱為出棧 pop 棧是一種先進後出的線性表.二 可以採用單鏈表來儲存棧中的所有元素,這種結構的棧被稱為鏈棧。對於鏈棧而言,棧頂元素不斷改變,程式...