内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

用java代碼編寫(xiě)堆棧 java堆棧和棧的圖解

用java代碼編寫(xiě)堆棧?

參看: 1 import java.util.*; 2 3 public class TestStack { 4 public static void main(String[] args) { 5 Stack stack = new Stack(); 6 7 for(int i = 0; i 10; i++) { 8 stack.push(new Integer(i)); 9 }1011 if(!stack.empty()) {12 System.out.println(stack.pop());13 }14 }15 }

創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站制作、網(wǎng)站建設(shè)與策劃設(shè)計(jì),贛榆網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:贛榆等地區(qū)。贛榆做網(wǎng)站價(jià)格咨詢:18982081108

Java 堆棧Stack使用

java中stack的使用方法,堆棧是一種"后進(jìn)先出"(LIFO) 的數(shù)據(jù)結(jié)構(gòu), 只能在一端進(jìn)行插入(稱(chēng)為"壓棧") 或刪除 (稱(chēng)為"出棧")數(shù)據(jù)的操作,下面看示例:

JAVA 中,使用 java.util.Stack 類(lèi)的構(gòu)造方法創(chuàng)建對(duì)象。

public class Stack extends vector

構(gòu)造方法 : public Stack() 創(chuàng)建一個(gè)空 Stack。

方法:

1. public push (item ) 把項(xiàng) 壓入棧頂。其作用與 addElement (item ) 相同。

參數(shù) item 壓入棧頂?shù)捻?xiàng) 。 返回: item 參數(shù) ;

2. public pop () 移除棧頂對(duì)象,并作為函數(shù)的值 返回該對(duì)象。

返回:棧頂對(duì)象(Vector 對(duì)象的中的最后一項(xiàng))。

拋出異常 : EmptyStackException 如果堆棧式空的 。。。

3. public peek() 查看棧頂對(duì)象而不移除它。。

返回:棧頂對(duì)象(Vector 對(duì)象的中的最后一項(xiàng))。

拋出異常 : EmptyStackException 如果堆棧式空的 。。。

4. public boolean empty (測(cè)試堆棧是否為空。) 當(dāng)且僅當(dāng)堆棧中不含任何項(xiàng)時(shí) 返回 true,否則 返回 false.

5. public int search (object o) 返回對(duì)象在堆棧中位置, 以 1 為基數(shù), 如果對(duì)象 o是棧中的一項(xiàng),該方法返回距離 棧頂最近的出現(xiàn)位置到棧頂?shù)木嚯x; 棧中最上端項(xiàng)的距離為 1 。

用java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)“棧

Java棧的實(shí)現(xiàn)

public class MyStack { //定義一個(gè)堆棧類(lèi)

int[] array; //用int數(shù)組來(lái)保存數(shù)據(jù),根據(jù)需要可以換類(lèi)型

int s_size; //定義堆棧的寬度

public MyStack(int i){ //定義一個(gè)帶參數(shù)構(gòu)造器

array=new int[i]; //動(dòng)態(tài)定義數(shù)組的長(zhǎng)度

s_size=0; //堆棧的默認(rèn)寬度為0

}

public MyStack(){ //默認(rèn)構(gòu)造器

this(50); //默認(rèn)構(gòu)造器可容納50個(gè)元素

}

public void push(int i){ //壓棧

array[this.s_size]=i;

this.s_size++;

}

public int pop(){ //從堆棧中取元素,從棧頂開(kāi)始取

if(this.s_size!=0){

int t=array[s_size-1]; //用中間變量保存棧頂?shù)脑?/p>

array[s_size-1]=0; //取完元素該位置設(shè)為0

s_size--; //棧的大小減1

return t; //返回棧頂元素

}else{

System.out.println("This stack is empty"); //當(dāng)棧為空時(shí)顯示提示信息,返回0

return 0;

}

}

public boolean isEmpty(){ //判斷棧是否為空

return this.s_size==0;

}

public int top(){ //從棧頂取值,功能和 pop() 方法一樣

if(!this.isEmpty()){

int t=array[this.s_size-1];

array[this.s_size-1]=0;

this.s_size--;

return t;

}else{

System.out.println("This stack is empty!");

return 0;

}

}

public void printAll(){ //打印出堆棧中的所有元素的值,不是取出,元素依然在堆棧里

if(!this.isEmpty()){

for(int i=this.s_size - 1;i=0;i--){

System.out.println(array[i]);

}

}

}

//下面是測(cè)試代碼

public static void main(String[] args){

MyStack stack=new MyStack();

stack.push(4);

stack.push(5);

stack.push(6);

stack.push(7);

//System.out.println(stack.isEmpty());

stack.printAll();

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

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

}

}

用一維整數(shù)數(shù)組實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的堆棧(Stack)。(用java語(yǔ)言)

public class IntStack {

private int[] stack;

private int top;

/**

*初始化棧,傳入一個(gè)非負(fù)的整數(shù),否則拋出一個(gè)錯(cuò)誤

*/

public IntStack(int size) throws StackErrorException{

if(size0){

throw new StackErrorException("錯(cuò)誤的大小");

}

init(size);

}

private void init(int size) {

stack = new int[size];

top = 0;

}

/**

*判斷棧是否為空,true則為空,反之則反

*/

public boolean isEmpty(){

return top==0;

}

/**

*判斷棧是否已滿,true則已滿,反之則反

*/

public boolean isFull(){

return top==stack.length;

}

/**

*向棧頂添加元素,滿則拋出異常

*/

public void push(int value) throws StackErrorException{

if(isFull()){

throw new StackErrorException("棧已滿");

}

stack[top++] = value;

}

/**

*移除棧頂元素并返回,空則拋出異常

*/

public int pop() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已到棧底!");

}

return stack[--top];

}

/**

*返回棧頂元素,空則拋出異常

*/

public int peek() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已在棧底!");

}

return stack[top-1];

}

/**

*返回棧大小

*/

public int size(){

return stack.length;

}

class StackErrorException extends Exception{

public StackErrorException(String msg) {

super(msg);

}

}

}

當(dāng)前文章:用java代碼編寫(xiě)堆棧 java堆棧和棧的圖解
本文URL:http://www.rwnh.cn/article6/dosigig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、微信小程序、定制網(wǎng)站、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(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)化排名
西城区| 陆川县| 乌拉特中旗| 涿州市| 五河县| 建平县| 璧山县| 翁牛特旗| 蒙自县| 廊坊市| 炎陵县| 哈巴河县| 阿拉善左旗| 潢川县| 修文县| 界首市| 江口县| 阿克陶县| 安阳县| 洱源县| 准格尔旗| 航空| 无棣县| 固镇县| 惠州市| 恭城| 民乐县| 太湖县| 九台市| 资阳市| 松滋市| 万载县| 兴隆县| 小金县| 普格县| 涞源县| 内丘县| 元谋县| 潜江市| 宜昌市| 永泰县|