Java程式:判斷元素是否在棧中


棧是一種線性資料結構,其中元素以LIFO方式儲存。這裡,LIFO代表後進先出,這意味著最後插入的元素將是第一個被訪問的元素。

在Java中,是Java 集合框架提供的類,它實現了棧資料結構。在這篇文章中,我們將編寫Java程式來判斷元素是否在棧中。

使用Stack.search()方法

java.util.Stack.search()方法用於判斷元素是否在Java的棧中。此方法接受一個引數,即在棧中搜索的元素。如果元素存在,則返回元素在棧中的位置(從1開始計數);如果元素不存在,則返回-1。

示例

演示此方法的程式如下所示:

import java.util.Stack;
public class Demo {
   public static void main (String args[]) {
      Stack<String> stack = new Stack<>();
      stack.push("Apple");
      stack.push("Mango");
      stack.push("Pear");
      stack.push("Orange");
      stack.push("Guava");
      System.out.println("The stack elements are: " + stack);
      System.out.println("The element Mango is in the stack at position: " + stack.search("Mango"));
      System.out.println("The element Peach is in the stack at position: " + stack.search("Peach"));
   }
}

執行上述程式碼後,將顯示以下輸出:

The stack elements are: [Apple, Mango, Pear, Orange, Guava]
The element Mango is in the stack at position: 4
The element Peach is in the stack at position: -1

透過迭代棧

另一種查詢元素的方法是遍歷棧。透過這種方法,我們使用for-each迴圈迭代並檢查每個元素,直到找到匹配項。

示例

下面的Java程式演示了上述方法的實現。

import java.util.Stack;
public class Demo {
   public static void main(String[] args) {
      Stack<Integer> stack = new Stack<>();
      stack.push(101);
      stack.push(201);
      stack.push(301);
      stack.push(302);
      stack.push(303);
	  System.out.println("The stack elements are: " + stack);
      // element to find
      int findElmnt = 201;
      boolean found = false;
      // for-each loop to check
      for(int i : stack) {
         if(i == findElmnt) {
            found = true;
            break;
         }
      }
      // printing the result
      if(found) {
         System.out.println("Element is in the Stack");
      } else {
         System.out.println("Element is not in the Stack");
      }
   }
}

執行後,您將得到以下輸出:

The stack elements are: [101, 201, 301, 302, 303]
Element is in the Stack

更新於:2024年8月16日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告