激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java數(shù)據(jù)結(jié)構(gòu)之java實(shí)現(xiàn)棧

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

2019-11-15 14:36java教程網(wǎng) JAVA教程

這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧,需要的朋友可以參考下

代碼如下:

import java.util.Arrays;

 

/**
 * 的實(shí)現(xiàn)<br>
 * @author Skip
 * @version 1.0
 */
public class Stack<T> {
 private int size;    //棧中元素的個(gè)數(shù)
 private Object[] arr;  //底層數(shù)組
 private final int defaultLength = 200; //默認(rèn)長(zhǎng)度

 /**
  * 無(wú)參構(gòu)造,使用默認(rèn)長(zhǎng)度初始化數(shù)組
  */
 public Stack(){
  arr = new Object[defaultLength];
  size = 0;
 }

 /**
  * 使用長(zhǎng)度參數(shù)初始化數(shù)組
  * @param length 長(zhǎng)度
  */
 public Stack(int length){
  arr = new Object[length];
  size = 0;
 }

 /**
  * 入棧
  * @param element 數(shù)據(jù)
  */
 public void push(T element){
  //是否需要擴(kuò)容
  if(size >= arr.length){
   //數(shù)組擴(kuò)容
   extendCapacity(size+1);
  }
  arr[size++] = element;
 }

 /**
  * 出棧
  * @return 數(shù)據(jù)
  */
 @SuppressWarnings("unchecked")
 public T pop(){
  //元素個(gè)數(shù)為0,無(wú)法執(zhí)行出棧操作
  if(size==0){
   return null;
  }
  T t = (T)arr[size-1];
  arr[--size] = null;  //數(shù)據(jù)已出棧,還原為null
  return t;
 }

 /**
  * 清空棧
  */
 public void clear(){
  for(int i=0;i<size;i++){
   arr[i]=null;
  }
  size = 0;
 }

 /**
  * 獲得當(dāng)前棧中元素的個(gè)數(shù)
  * @return 元素的個(gè)數(shù)
  */
 public int getSize(){
  return size;
 }

 /**
  * 判斷是否為空棧
  * @return 空為true,非空為false
  */
 public boolean isEmpty(){
  return size == 0;
 }

 /**
  * 打印棧中所有的元素
  */
 @SuppressWarnings("unchecked")
 public void printStack(){
  for(int i=0;i<size;i++){
   System.out.print(((T)arr[i]).toString());
  }
  System.out.println();
 }

 /**
  * 擴(kuò)容
  * @param length 需要的長(zhǎng)度
  */
 private void extendCapacity(int length){
  //當(dāng)前數(shù)組長(zhǎng)度和需要的長(zhǎng)度取最大
  int minCapacity = Math.max(arr.length, length);
  //判斷是否需要擴(kuò)容
  if(minCapacity - arr.length>0){
   //數(shù)組長(zhǎng)度增加一半
   int newLength = arr.length + arr.length/2;
   //如果新的長(zhǎng)度還比需求要小,將需求的長(zhǎng)度作為數(shù)組長(zhǎng)度
   if(newLength < minCapacity){
    newLength=minCapacity;
   }
   //數(shù)組長(zhǎng)度不能超過(guò)Integer.Max_Value
   if(newLength > Integer.MAX_VALUE - 8){
    newLength = Integer.MAX_VALUE;
   }
   //數(shù)組擴(kuò)容
   arr = Arrays.copyOf(arr, newLength);
  }
 }
}

 

延伸 · 閱讀

精彩推薦
640
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲国产超高清a毛毛片 | 久久久久一本一区二区青青蜜月 | 婷婷中文字幕一区二区三区 | 高清久久久 | 成人宗合网| 一区二区三高清 | 久国久产久精永久网页 | 精品成人免费一区二区三区 | 久久影片 | 亚洲精品日韩欧美 | 亚洲精品在线观看免费 | 成人黄视频在线观看 | 午夜在线成人 | 久久精品视频在线 | 国产精品亚洲三区 | 国产精品91在线 | 国产一区二区三区在线免费 | 国产羞羞视频 | 精品中文字幕久久久久四十五十骆 | 黄色高清免费 | h视频免费看 | 亚洲精品一区国产精品丝瓜 | 深夜小视频在线观看 | 怦然心动50免费完整版 | 91精品国产综合久久婷婷香蕉 | 91av亚洲| 91 免费看片| 午夜av男人的天堂 | 国产一区二区成人在线 | 日本在线视频二区 | www.精品在线 | 日本高清电影在线播放 | 国产午夜精品一区二区三区免费 | 亚洲二区三区在线 | 欧美一区公司 | 91看片在线观看视频 | 黄在线免费看 | 免费黄色在线电影 | 国产毛片网 | 亚洲免费永久 | 久久亚色|