更新堆栈信息而不删除是否正确?

时间:2017-02-06 01:17:48

标签: java data-structures stack

我有一个带有LinkedList的Stack。

我想通过id更新元素的信息。 (我使用compareTo,doens并不重要。)

例如,我的堆栈

顶>约翰,马里奥,安娜,迈克尔

我想在Person对象中更新Anna的信息(年龄等)。

当我使用LinkedList时,我应该迭代列表并更新值吗? 这是不正确的? 因为这个概念是Stack只能访问它的顶层。

我应该弹出另一个堆栈然后回来吗? 我应该迭代并更新吗?

非常感谢。

我的筹码:

public class LittleStack<E> {

    private SimplyLinkedList<E> elements; 

    public LittleStack() {
        elements= new SimplyLinkedList<>();
    }

    public boolean push(E obj) {
        elements.insertAtBegin(obj);
        return true;
    }

    public E pop() {
      return elements.removeFromBegin();
    }

    public E getTop() {
        return this.elements.getInicio().getObj();
    }       

1 个答案:

答案 0 :(得分:1)

如果您的问题域指定堆栈作为数据结构,请使用第二个堆栈。

伪/代码:

  • create stack2
  • 从stack1弹出元素并推送到stack2
  • 重复直到你弹出安娜
  • 修改安娜
  • 将Anna推回stack1
  • 从stack2弹出元素并将它们推送到stack1
  • 重复,直到stack2为空