日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 顺序栈_Java实现顺序栈

發布時間:2025/3/11 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 顺序栈_Java实现顺序栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、分析

棧是限定僅在表的一端進行插入或刪除操作的線性表,對于棧來說,操作端稱為棧頂,另一端則稱為棧底,棧的修改是按照后進先出的原則進行的,因此又稱為后進先出的線性表。

順序棧是指利用順序存儲結構實現的棧,即利用一組地址連續的存儲單元依次存放自棧底到棧頂的數據元素,同時附設指針top指示棧頂元素在順序棧中的位置。

一個標準的順序棧具有如下基本操作:

1、初始化順序棧

2、銷毀順序棧

3、清空順序棧

4、檢測順序棧是否為空

5、返回順序棧中的元素個數

6、返回順序棧的棧頂元素,不修改棧頂指針

7、向順序棧頂中壓入元素

8、從順序棧頂中彈出元素

9、從棧底到棧頂遍歷順序棧

在Java中,可以將整個順序棧定義成一個類,類中定義有一個數組類型的屬性表示順序存儲結構來存儲元素,再定義一個int類型的屬性top來作為指針指示棧頂元素在數組中的位置,順序棧的基本操作則定義成類的方法。初始化順序棧即實例化類,銷毀順序棧即銷毀實例化出來的對象。

二、實現

1、定義類屬性和構造函數

1 classInitStack{2

3 private int [] stack = null;     //存儲元素

4

5 private int top = 0;          //指示棧頂元素在順序棧中的位置

6

7 public InitStack(int max) {      //初始化自定義大小的順序棧

8 this.stack = new int[max];9 }10 }

2、清空順序棧

1 public voidclearStack() {2 this.top = 0;         //直接令棧頂指針指向棧底即可

3 }

3、檢測順序棧是否為空

1 public booleanstackEmpty() {2 if(this.top == 0) {       //檢測棧頂指針是否指向棧底即可

3 return true;4 }else{5 return false;6 }7 }

4、返回順序棧中的元素個數

1 public intstackLength() {2 return this.top;       //棧頂指針的值即代表了元素個數

3 }

5、返回順序棧的棧頂元素,不修改棧頂指針

1 public int[] getTop() {2

3 if (this.top == 0) {       //如果順序棧為空,則返回空

4 return null;5 }6

7 int [] i = new int[1];8 i[0] = stack[this.top - 1];   //獲取棧頂元素

9

10 returni;11 }

6、向順序棧頂中壓入元素

1 public boolean push(intvalue) {2

3 if(this.top == this.stack.length) {   //判斷順序棧是否已滿

4 return false;5 }6

7 this.stack[this.top] = value;       //壓入元素

8 this.top++;                 //棧頂指針加一

9 return true;10 }

7、從順序棧頂中彈出元素

1 public int[] pop() {2

3 if (this.top == 0) {     //判斷順序棧是否已空

4 return null;5 }6

7 int [] i = new int[1];8 this.top--;           //棧頂指針減一

9 i[0] = stack[this.top];   //獲取棧頂元素

10 returni;11 }

8、從棧底到棧頂遍歷順序棧

1 public String stackTraverse() {           //通過輸出順序棧元素來表示遍歷

2

3 String s = "";                   //存儲要輸出的元素

4

5 for (int i = 0; i < this.top; i++) {     //循環遍歷

6 s += this.stack[i] + "、";7 }8

9 if(s.length() == 0) {              //如果未獲取到元素,返回空字符串

10 returns;11 }12

13 return s.substring(0,s.length() - 1);    //除去最后一個頓號后返回

14 }

三、小結

以上就是順序棧用Java的實現,由于只定義了整數的數組,因此只能操作整數數據,但順序棧的基本思想都已實現。

總結

以上是生活随笔為你收集整理的java 顺序栈_Java实现顺序栈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。