亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小)

瀏覽:2日期:2022-08-17 10:58:07

我就廢話不多說了,大家還是直接看代碼吧~

import java.util.Iterator;public class ResizingArrayStack<Item> implements Iterable<Item>{ private Item[] a=(Item[]) new Object[1]; private int N=0; public boolean isEmpty() { return N==0;} public int size() {return N;} private void resize(int max) { Item[] temp=(Item[]) new Object[max]; for(int i=0; i<N; i++) { temp[i]=a[i]; } a=temp; } public void push(Item item) { if(N==a.length) resize(2*a.length); a[N++]=item; } public Item pop() { Item item=a[--N]; a[N]=null; if(N>0 && N==a.length/4) resize(a.length/2); return item; } public Iterator<Item> iterator() {return new ReverseArrayIterator();} private class ReverseArrayItertor implements Iterator<Item> { private int i=N; public boolean hasNext() {return i>0;} public Item next() {return a[--i];} public void remove() {} }}

補充:Java實現(xiàn)棧的入棧和出棧等基本操作

棧的英文為(stack)

棧是一個先入后出(FILO-First In Last Out)的有序列表。

棧(stack)是限制線性表中元素的插入和刪除只能在線性表的同一端進行的一種特殊線性表。允許插入和刪除的一端,為變化的一端,稱為棧頂(Top),另一端為固定的一端,稱為棧底(Bottom)。

根據(jù)棧的定義可知,最先放入棧中元素在棧底,最后放入的元素在棧頂,而刪除元素剛好相反,最后放入的元素最先刪除,最先放入的元素最后刪除

棧的基本操作實現(xiàn)

package com.atguigu.stack; import java.util.Scanner; public class ArrayStackDemo { public static void main(String[] args) { //測試 ArrayStack stack =new ArrayStack(4); String key=''; boolean loop = true; Scanner scanner = new Scanner(System.in); while(loop) { System.out.println('show:表示顯示棧'); System.out.println('exit:退出程序'); System.out.println('push:表示添加數(shù)據(jù)到棧(入棧)'); System.out.println('pop:表示從棧取出數(shù)據(jù)(出棧)'); System.out.println('請輸入你的選擇'); key = scanner.next(); switch(key) { case 'show': stack.list(); break; case 'push': System.out.println('請輸入一個數(shù)'); int value = scanner.nextInt(); stack.push(value); break; case 'pop': try { int res = stack.pop(); System.out.printf('出棧的語句是%dn', res); }catch(Exception e) { System.out.println(e.getMessage()); } break; case 'exit': scanner.close(); loop = false; break; default: break; } } System.out.println('程序退出'); } } class ArrayStack{ private int maxSize; private int[] stack; private int top = -1; public ArrayStack(int maxSize) { this.maxSize=maxSize; stack = new int[this.maxSize]; } //棧滿 public boolean isFull() { return top == maxSize -1; } //棧空 public boolean isEmpty() { return top == -1; } //出棧 public void push(int value) { if(isFull()) { System.out.println('棧滿'); } top++; stack[top] =value; } //出棧 public int pop() { if(isEmpty()) { throw new RuntimeException('棧空'); } int value = stack[top]; top--; return value; } //遍歷棧 public void list() { if(isEmpty()) { System.out.println('棧空,沒有數(shù)據(jù)'); return; } for(int i = top;i>=0;i--) { System.out.printf('stack[%d]=%dn',i,stack[i]); } }}

測試結(jié)果

java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 把女人弄爽特黄aa大片视频 | 欧美一级高清免费a | 特级a级毛片| 亚洲欧洲精品视频 | 亚洲高清网站 | 欧美在线性视频 | 日本一道免费一区二区三区 | 分享一个无毒不卡免费国产 | 日本大学生免费一级一片 | 亚洲一区精品视频在线 | 欧美线在线精品观看视频 | 国产亚洲综合视频 | 免费观看欧美一级牲片一 | 一级待一黄aaa大片在线还看 | 亚洲综合色婷婷 | 亚洲精品不卡午夜精品 | 偷窥第一页 | 国产成人深夜福利在线观看 | aaaaaa毛片免费看 | 综合 欧美 国产 视频二区 | 国产狂喷白浆在线观看视频 | 96精品视频在线播放免费观看 | 精品黄色录像 | 日本xxxxx黄区免费看动漫 | 特黄色片| 亚洲综合套图 | 一级作爱视频免费观看 | 国产在线观看精品一区二区三区91 | 国产精品19禁在线观看2021 | 国产成人免费高清视频 | 国产91在线看 | 高清对白精彩国产国语 | 中文字幕一区二区三区在线播放 | 欧美日韩精品在线观看 | 国产三级三级三级三级 | 欧美精品v国产精品v日韩精品 | 国产一级高清视频免费看 | 久久国产精品自由自在 | 日韩一级在线播放 | 国产一级视频播放 | 国产精品久久新婚兰兰 |