首先我們來講講什么是棧,主要是介紹我對棧的了解和認(rèn)識:棧是一種用于存儲數(shù)據(jù)的表,鮮明的特點(diǎn)是先進(jìn)后出FILO,棧的實(shí)現(xiàn)分為數(shù)組實(shí)現(xiàn)和鏈表實(shí)現(xiàn)。學(xué)習(xí)??粗袑W(xué)習(xí)棧的思想,通過棧的思想解決一些實(shí)際中的問題。Java中有Stack類實(shí)現(xiàn)棧的操作。這篇博客主要闡述,棧的基本實(shí)現(xiàn),數(shù)組實(shí)現(xiàn)和鏈表實(shí)現(xiàn)。
一、棧的模型圖
入棧的順序為:0、1、2、3、 4、 5、6 出棧的順序為6、5、4、3、2、1、0
二、棧的數(shù)組實(shí)現(xiàn)
這個棧的實(shí)現(xiàn)是通過數(shù)組實(shí)現(xiàn)的,通過動態(tài)的擴(kuò)充數(shù)組的長度來實(shí)現(xiàn)無界棧。
代碼實(shí)現(xiàn):
1 package Stack; 2 3 public class Stack1 { 4 private int stack[];//用于存儲棧內(nèi)元素的數(shù)組 5 private int DEFAULTSIZE=5;//默認(rèn)初始化棧的存儲空間 6 private int top;//棧頂指針 7 private int base;//棧底指針 8 private int nowSize;//棧當(dāng)前的元素個數(shù) 9 private int&nb