如何使用一個數組實現一個棧結構呢?
阿新 • • 發佈:2021-11-13
下文是筆者採用陣列實現棧結構的方法分享,如下所示:
實現思路:
通過記錄棧的最後一個位置的索引,即可實現每次都從最末尾取出元素,實現棧結構的先進後出
package com.java265.algorithm; /* * 作者:java265.com * 使用陣列實現一個棧結構 * */ public class ArrayToStack { public static void main(String[] args) { ArrayStack.add(10); ArrayStack.add(20); ArrayStack.add(100); ArrayStack.add(120); ArrayStack.add(110); ArrayStack.add(190); ArrayStack.add(1); ArrayStack.add(2); System.out.println("=========="); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); ArrayStack.poll(); } }class ArrayStack { // 先進後出 // 固定棧大小 static int[] arr = new int[3]; // endIndex 棧最後一個位置 static int endIndex = 0; static { } static void add(int a) { if (endIndex == arr.length) { System.out.println("棧已滿,壓棧失敗!"); return; } arr[endIndex++] = a; } static void poll() { if (endIndex == 0) { System.out.println("棧為空,出棧失敗!"); return; } System.out.println("出棧元素為:" + arr[--endIndex]); } }