文章目錄
- 前言
- 一、基本實作思路
- 二、代碼實作
- 1.構造堆疊、實作堆疊的基本操作
- 2.具體實體測驗代碼
- 1、String類實作
- 2、Integer類實作
- 總結
前言
用Java實作順序堆疊的基本操作,采用泛型結構,可以適應更多場合運用,避免了上篇文章只是儲存int型別的單鏈表的缺點,本文以String 和Integer為例簡單介紹,作為知識的總結與理解
提示:以下是本篇文章正文內容,
一、基本實作思路
1. 構建堆疊(陣列)
2. 實作堆疊的基本操作(進堆疊、出堆疊、取堆疊頂元素、顯示堆疊內元素)
3. 具體實作測驗
二、代碼實作
1.構造堆疊、實作堆疊的基本操作
代碼如下:
package stake;
/*
* 利用泛型陣列儲存實作堆疊的基本功能
*/
public class Stake <T>{
private int count;
private Object[] a;
private int top;
public Stake(int count) {
super();
this.count = count;
this.a =new Object [this.count];
this.top = -1;
}
/*
* 進堆疊操作
*/
public void pushStake(T elem) {
if (count>0&&top<count-1) {
a[++top]=elem;
}
else {
System.out.println("當前堆疊滿了!");
}
}
/*
* 出堆疊操作
*/
//這里有例外未解決
@SuppressWarnings("unchecked")
public T putStake() {
T elem;
if (top>-1) {
elem=(T) a[top--];
return elem;
}
else {
System.out.println("當前堆疊為空!");
return null;
}
}
/*
* 取堆疊頂元素
*/
public void referStake() {
if (top>-1) {
System.out.println(a[top]);
}
else {
System.out.println("此堆疊為空!");
}
}
/*
* 顯示堆疊內當前元素的
*/
public void display() {
//判斷堆疊是否為空
if (top==-1) {
System.out.println("此堆疊為空!");
return;
}
for (int i = 0; i <= top; i++) {
System.out.println(a[i]);
}
}
}
2.具體實體測驗代碼
1、String類實作
代碼如下:
package stake;
/*
* 定義String型別的堆疊stake
*/
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//實體化物件
Stake <String> stake=new Stake<>(3);
//進堆疊操作
stake.pushStake("aaa");
stake.pushStake("bbb");
stake.pushStake("ccc");
System.out.println("顯示當前堆疊內元素");
stake.display();
//進堆疊 堆疊滿提示
stake.pushStake("ddd");
System.out.println("顯示堆疊頂元素");
stake.referStake();
System.out.println("顯示出堆疊元素");
//連續出堆疊
System.out.println(stake.putStake());
stake.putStake();
stake.putStake();
System.out.println("顯示當前堆疊的情況");
stake.display();
}
}
結果如下:

2、Integer類實作
代碼如下:
package stake;
/*
* 定義Integer型別的堆疊stake
*/
public class IntTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//實體化物件
Stake<Integer> stake=new Stake<>(3);
stake.pushStake(1);
stake.pushStake(2);
stake.pushStake(3);
System.out.println("顯示當前堆疊內元素");
stake.display();
//進堆疊 堆疊滿提示
stake.pushStake(4);
System.out.println("顯示堆疊頂元素");
stake.referStake();
System.out.println("顯示出堆疊元素");
//連續出堆疊
System.out.println(stake.putStake());
stake.putStake();
stake.putStake();
System.out.println("顯示當前堆疊的情況");
stake.display();
}
}
結果如下:

總結
到此堆疊的基本操作介紹結束了,感謝大家的閱讀,評論,點贊,作為一個初學者,我在編程的的道路上還要走很久,希望一路上有各位的陪伴,上一篇文章一位大佬給我評論“如果是泛型就更好了”,我一開始都不知道什么是泛型,經過查資料,了解到了泛型,在這里我采用了泛型結構,代碼復用性大大提高,感謝大佬的指點,相信在編程的道路上會越走越遠,謝謝大家!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206172.html
標籤:其他
上一篇:SSM專案的dao層介面不加@Repository也不報錯,能夠實體化為bean?Could not autowire. No beans of ‘XxxDao‘ type found錯誤
