用Java堆栈

Java收集框架提供了一个堆栈类,它实现了堆栈数据结构。堆栈实现了LIFO,即后进先出。这意味着最后推送的元素是最先弹出的元素。

以下是一些方法。

序号方法与说明
1booleanempty()
测试此堆栈是否为空。如果堆栈为空,则返回true;如果堆栈包含元素,则返回false。
2对象peek()
返回堆栈顶部的元素,但不删除它。
3对象pop()
返回堆栈顶部的元素,并在此过程中将其删除。
4Object push(Object element)
将元素压入堆栈。元素也被返回。
5int search(Object element)
在堆栈中搜索元素。如果找到,则返回其与堆栈顶部的偏移量。否则,返回-1。

演示Java中堆栈的程序如下所示-

示例

import java.io.*;
import java.util.*;
public class Example {
   public static void main (String[] args) {
      Stack<Integer> s = new Stack<Integer>();
      s.push(5);
      s.push(1);
      s.push(9);
      s.push(4);
      s.push(8);
      System.out.print("The stack is: " + s);
      System.out.print("\nThe element popped is: ");
      Integer num1 = (Integer) s.pop();
      System.out.print(num1);
      System.out.print("\nThe stack after pop is: " + s);
      Integer pos = (Integer) s.search(9);
      if(pos == -1)
      System.out.print("\nThe element 9 not found in stack");
      else
      System.out.print("\nThe element 9 is found at position " + pos + " in stack");
   }
}

输出结果

The stack is: [5, 1, 9, 4, 8]
The element popped is: 8
The stack after pop is: [5, 1, 9, 4]
The element 9 is found at position 2 in stack

现在让我们了解上面的程序。

五个元素被推入堆栈。然后显示堆栈。之后,顶部的元素将弹出并显示。证明这一点的代码片段如下所示-

Stack<Integer> s = new Stack<Integer>();
s.push(5);
s.push(1);
s.push(9);
s.push(4);
s.push(8);
System.out.print("The stack is: " + s);
System.out.print("\nThe element popped is: ");
Integer num1 = (Integer) s.pop();
System.out.print(num1);
System.out.print("\nThe stack after pop is: " + s);

之后,在堆栈中搜索元素9。如果存在,则显示其位置,否则显示元素不在堆栈中。演示此过程的代码段如下所示。

Integer pos = (Integer) s.search(9);
if(pos == -1)
System.out.print("\nThe element 9 not found in stack");
else
System.out.print("\nThe element 9 is found at position " + pos + " in stack");