引言
陣列是前面介紹排序和二分查詢用的資料儲存結構,和後面要遇到學習的其他結構(鍊錶、樹等等)一樣,都適合用於資料庫應用中作資料記錄。這些資料結構便於資料的訪問:它們易於進行插入、刪除和查詢特點資料項的操作。
本篇講的資料儲存型別是棧、佇列甚至優先順序佇列中---棧。這三種資料儲存型別它們主要作為構思演算法的輔助工具,而不是完全的資料儲存工具。這些資料機構的生命週期比那些資料庫型別的結構要短的多。在程式操作執行期間它們才被建立,通常用它們去執行某項特殊的任務;當完成任務之後,它們就被銷毀。
棧棧主要機制可以用陣列來實現,本篇例項就是這樣處理的,但是也可以用鍊錶來實現。棧只允許訪問乙個資料項:即最後插入的資料項。移除這個資料項後才能訪問倒數第二個插入的資料項,依次類推。這種機制在不少程式設計環境中都很有用。
棧先進後出(後進先出),如下圖:
以下就是棧簡單實現:
/**
* 簡單棧操作
* * @author whmadmin
* */
public class stackx
/*** 新增
* @param i 新增元素
*/public void push(long i)
/*** 彈出元素
* @return 元素值
*/public long pop()
/*** 獲取元素
* @return
*/public long peek()
/*** 是否有元素
* @return
*/public boolean isempty()
/*** 空間是否滿了
* @return
*/public boolean isfull()
public static void main(string args)
system.out.println();
system.out.println("---------------------------------------");
system.out.println("出棧元素順序:");
while(!stackx.isempty())
}}
執行結果:
入棧元素順序:
3 -1 9 2 2 1 2 -1 2 3
---------------------------------------
出棧元素順序:
3 2 -1 2 1 2 2 9 -1 3
因為是隨機數,所以每次元素大小不一樣。以上就是簡單的棧實現,方便初學者理解。 棧和佇列 簡單實現
棧 是一種特殊的線性表,只允許在固定的一端插入和刪除,一端稱為棧底,一端稱為棧頂。棧遵循先進後出的原則。棧的相關操作 壓棧,向棧頂插入乙個元素 出棧,在棧頂處刪除乙個元素 取棧頂元素,獲取到在最後乙個在棧頂元素的結果。棧的實現 1.基於順序表 使用尾插,尾刪來分別表示入棧和出棧。根據下標獲取元素表示...
線性儲存模擬棧和佇列
一般所謂的線性儲存基本是就是陣列和動態分配的儲存空間,在模擬棧和佇列的時候,使用乙個迭代器作為棧頂或者隊首隊尾,這個迭代器的賦值比較講究,在初始化的時候賦值為 1最為方便,既便於判空又便於儲存。在插入的時候使用陣列stack 和迭代器i,插入元素element,stack i element 這樣,...
棧和佇列 最小棧
題目要求 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.pus...