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

用java編寫出來(lái):用數(shù)組實(shí)現(xiàn)一個(gè)棧

public class Stack {

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

private Object[] stack;

//這個(gè)不需要;

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

//這個(gè)也不需要;

//寫一個(gè)棧出來(lái),最好是可以動(dòng)態(tài)的,可以自己改變大小的,即數(shù)組的長(zhǎng)度;

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

//元素個(gè)數(shù);

private int size;

//默認(rèn)長(zhǎng)度為10;

public Stack(){

this(10);

}

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

public Stack(int len){

stack = new Object[len];

}

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

public int size(){

return size;

}

//返回?cái)?shù)組長(zhǎng)度,即容量;

public int capacity(){

return stack.length;

}

//實(shí)現(xiàn)動(dòng)態(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;

}

*/

/*

// 計(jì)算棧當(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() + "");

}

//}

}

}

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

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

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

Java中棧的使用

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

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

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

boolean empty()

測(cè)試堆棧是否為空。

E peek()

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

E pop()

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

E push(E item)

把項(xiàng)壓入堆棧頂部。

int search(Object o)

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

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

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

廣告

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

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