zoukankan      html  css  js  c++  java
  • java Stack的使用

    堆栈是一种 “后进先出”  (LIFO) 的数据结构, 只能在一端进行插入(称为 “压栈” ) 或删除 (称为“出栈”)数据的操作。所以很适合逆序操作,JAVA 中,使用 java.util.Stack 类的构造方法创建对象。

    Stack的基本方法

    1. public push  (item ) 

    把项 压入栈顶。其作用与 addElement (item ) 相同。参数 item 压入栈顶的项 。

    返回: item 参数 ;

    2. public pop ()

    移除栈顶对象,并作为函数的值 返回该对象。

    返回:栈顶对象(Vector 对象的中的最后一项)。

    抛出异常 : EmptyStackException 堆栈为空。

    3. public peek() 

    查看栈顶对象而不移除

    返回:栈顶对象(Vector 对象的中的最后一项)。

    抛出异常 : EmptyStackException 堆栈为空

    4. public boolean empty (测试堆栈是否为空。) 

    当且仅当堆栈中不含任何项时 返回 true,否则 返回 false.

    5. public int search  (object o)  

    返回对象在堆栈中位置, 以 1 为基数, 如果对象 o是栈中的一项,该方法返回距离 栈顶最近的出现位置到栈顶的距离;  

    参数: o 目标对象;

     1     public static void main(String[] args) {
     2         Stack stack = new Stack(); // 创建堆栈对象
     3         System.out.println("11111, absdder, 29999.3 三个元素入栈");
     4         stack.push(new Integer(11111)); //向 栈中 压入整数 11111
     5         printStack(stack);  //显示栈中的所有元素
     6          
     7         stack.push("absdder"); //向 栈中 压入
     8         printStack(stack);  //显示栈中的所有元素
     9          
    10         stack.push(new Double(29999.3)); //向 栈中 压入
    11         printStack(stack);  //显示栈中的所有元素
    12          
    13         String s = new String("absdder");
    14         System.out.println("元素absdder在堆栈的位置"+stack.search(s));     
    15         System.out.println("元素11111在堆栈的位置"+stack.search(11111));
    16          
    17         System.out.println("11111, absdder, 29999.3 三个元素出栈"); //弹出 栈顶元素
    18         System.out.println("元素"+stack.pop()+"出栈");
    19         printStack(stack);  //显示栈中的所有元素
    20         System.out.println("元素"+stack.pop()+"出栈");
    21         printStack(stack);  //显示栈中的所有元素
    22         System.out.println("元素"+stack.pop()+"出栈");
    23         printStack(stack);  //显示栈中的所有元素
    24         if (stack.empty())
    25             System.out.println("堆栈是空的,没有元素");
    26  
    27     }
  • 相关阅读:
    LeetCode Binary Tree Inorder Traversal
    LeetCode Populating Next Right Pointers in Each Node
    LeetCode Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode Reverse Linked List II
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Pascal's Triangle
    Palindrome Construct Binary Tree from Preorder and Inorder Traversal
    Pascal's Triangle II
    LeetCode Word Ladder
    LeetCode Binary Tree Zigzag Level Order Traversal
  • 原文地址:https://www.cnblogs.com/wanglinyu/p/8196352.html
Copyright © 2011-2022 走看看