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