棧是否滿的java代碼 棧需要new嗎

用java編寫出來:用數(shù)組實現(xiàn)一個棧

public class Stack {

創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為船營企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,船營網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

private Object[] stack;

//這個不需要;

//private int top = 0; //初始化棧頂

//這個也不需要;

//寫一個棧出來,最好是可以動態(tài)的,可以自己改變大小的,即數(shù)組的長度;

//private int size = 0; // 初始化大小

//元素個數(shù);

private int size;

//默認長度為10;

public Stack(){

this(10);

}

//也可以自己設(shè)置長度,即容量;

public Stack(int len){

stack = new Object[len];

}

//返回元素個數(shù);

public int size(){

return size;

}

//返回數(shù)組長度,即容量;

public int capacity(){

return stack.length;

}

//實現(xiàn)動態(tài)的數(shù)組;

public void ensureCapacity(){

if(size() == capacity()){

Object[] newStack = new Object[size() * 3 / 2 + 1];

System.arraycopy(stack, 0, newStack, 0, size());

stack = newStack;

}

}

//入棧;

public void push(Object o){

size++;

ensureCapacity();

stack[size - 1] = o;

}

/*

public void push(Object object) {

if (isFull()) {

System.out.println("棧滿! 入棧失敗");

}

stack[top++] = object;

}

*/

//判空;

public boolean isEmpty(){

return size == 0;

}

//出棧;

public Object pop(){

//首先要判空;

if(isEmpty()){

throw new ArrayIndexOutOfBoundsException("不能為空");

}

Object o = stack[--size];

stack[size] = null;

return o;

}

/*

// 出棧

public Object pop() {

Object object = stack[--top];

stack[top] = null;

return object;

}

*/

/*

// 計算棧當(dāng)前大小

public int size() {

return top;

}

// 判斷是否是空棧

public boolean isEmpey() {

return top == 0;

}

// 判斷是否棧滿

public boolean isFull() {

return top = size;

}

public Stack(int size) {

this.size = size;

}

*/

public static void main(String[] args) {

Stack stack = new Stack(3);

String[] data = new String[] { "a", "b", "c" };

for (int i = 0; i data.length; i++) {

stack.push(data[i]);

System.out.println(data[i] + "");

}

System.out.println("***********");

while (!stack.isEmpty()) {

System.out.println(stack.pop() + "");

}

//}

}

}

你自己對比一下,我是在你的里面修改的

java程序:用數(shù)組實現(xiàn)棧,要求當(dāng)??臻g滿時,??臻g增加一倍。如何實現(xiàn)呢?

建立新數(shù)組,長度為原數(shù)組一倍,將原數(shù)組數(shù)據(jù)拷貝到新數(shù)組,刪除原數(shù)組

Java中棧的使用

和C++里面一樣,有入棧,彈棧,查找函數(shù)

import java.util.*;(引入包含棧類的頭文件)

相關(guān)函數(shù)介紹

boolean empty()

測試堆棧是否為空。

E peek()

查看堆棧頂部的對象,但不從堆棧中移除它。

E pop()

移除堆棧頂部的對象,并作為此函數(shù)的值返回該對象。

E push(E item)

把項壓入堆棧頂部。

int search(Object o)

返回對象在堆棧中的位置,以 1 為基數(shù)。

網(wǎng)頁題目:棧是否滿的java代碼 棧需要new嗎
瀏覽路徑:http://www.muchs.cn/article18/ddioddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣企業(yè)網(wǎng)站制作、網(wǎng)站維護、外貿(mào)建站ChatGPT、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名