棧的概念
棧是一種特殊的線性表,堆疊的資料元素以及資料元素之間的關係和線性表是完全一樣的。差別是線性表是在任意位置進行插入和刪除操作,棧是只允許在固定的一端進行插入和刪除,棧的插入和刪除只允許在棧頂,棧的插入和刪除通常稱為進棧和出棧。
資料集合
每個資料元素的資料型別可以是任意的型別
操作的集合
進棧push(obj):把資料元素obj插入到棧中。
出棧pop() : 刪除的資料元素由函式返回。
獲得棧頂元素gettop():取棧頂的資料並由函式返回。
判斷棧是不是為空isempty():若棧非空返回true,否則返回false。
棧的型別:
棧的型別包括兩種:順序棧和鏈式棧
**設計:
設計mystack介面
實現順序棧類sequencestack類
public inte***ce mystack
public class sequencestack implements mystack
public sequencestack(int size)
public void init(int size)
@override
public void push(object obj) throws exception else
}@override
public object pop() throws exceptionelse
}@override
public object gettop() throws exceptionelse
}@override
public boolean isempty() public class testmystack
}
JAVA演算法系列 快速排序
首先說一下什麼是快排,比冒泡效率要高,快排的基本思路是首先找到乙個基準元素,比如陣列中最左邊的那個位置,作為基準元素key,之後在最左邊和最右邊設立兩個哨兵,i和j 之後,開始按住左哨兵 i 讓右哨兵 j 往左走 j 找到比key小的元素後,按住右哨兵 j 開始讓左哨兵往右走 i 直到找到比key大...
演算法系列 全排列演算法 Java實現
昨晚心血來潮,想起全排列演算法,但是忘記怎麼實現,所以就自己再次試圖編寫 實現。晚上想不出來,想不到,一覺醒來後,一下子就寫好了!public class quanpailie array a array a array b array b array a array b array a array...
演算法系列 Move Zeroes
given an array nums,write a function to move all 0 s to the end of it while maintaining the relative order of the non zero elements.for example,given ...