基于“用java.util.*中的LinkedList实现stack” 2.0版

    技术2022-05-11  67

    /*在上次写“用java.util.*中的LinkedList实现stack”的同时我也把这篇文章发到了javaResearch.org在网友的提议下,觉得这stack还有可以改进的地方,主要可以在stack中加入一个栈元素个数的变量size,在出栈和入栈的时候改变同时再加上一个栈顶指针,就更象一栈了, 现在把程序改成如下:*/ import java.util.*; class MyStack {  private static int stackSize=0;  LinkedList ll =new LinkedList(); //元素入栈;  public void push(Object o)  {   ll.addFirst(o);   stackSize=stackSize+1;  } //元素出栈;  public Object pop()  {   stackSize=stackSize-1;   return ll.removeFirst();    } //返回Stack的第一个元素;  public Object peek() {   return ll.getFirst();  } //判断stack是否为空;  public boolean empty()  {   return ll.isEmpty();  } //返回Stack元素的个数;  public int length() {       return MyStack.stackSize; }  public static void main(String []args)  {   MyStack ms=new MyStack();   ms.push("apple");   ms.push("banana");   ms.push("pear");   System.out.println(ms.length());     System.out.println(ms.pop());   System.out.println(ms.empty());   System.out.println(ms.length());    } } 至于那个栈顶指针可以用peek()方法返回,欢迎大家在提出意见,我现在也是在学stack,对stack体验不深,大家一起学习。

    最新回复(0)