gpt4 book ai didi

java - Java中Stack的删除方法

转载 作者:行者123 更新时间:2023-11-30 07:32:20 25 4
gpt4 key购买 nike

我正在努力解决这个问题 - 我需要实现一个方法:公共(public) int 删除(int n)我从堆栈中删除最上面的 n 个条目。任何关于我可以从哪里开始解决这个问题的建议将不胜感激。

这里提供了我需要实现此remove()方法的代码。

public class LinkedStack<T> implements StackInterface<T>
{
private Node topNode; // references the first node in the chain

public LinkedStack()
{
topNode = null;
} // end default constructor

public void push(T newEntry)
{
Node newNode = new Node(newEntry, topNode); topNode = newNode;
} // end push

public T peek()
{
T top = null;
if (topNode != null)
top = topNode.getData();
return top;
} // end peek

public T pop()
{
T top = peek();
if (topNode != null)
topNode = topNode.getNextNode();
return top;
} // end pop

public boolean isEmpty() {
return topNode == null;
}
public void clear() {
topNode = null;
}

private class Node
{
private T data; // entry in stack
private Node next; // link to next node

private Node(T dataPortion)
{
this(dataPortion, null);
} // end constructor

private Node(T dataPortion, Node nextNode)
{
data = dataPortion;
next = nextNode;
} // end constructor

private T getData()
{
return data;
} // end getData

private void setData(T newData)
{
data = newData;
} // end setData

private Node getNextNode()
{
return next;
} // end getNextNode

private void setNextNode(Node nextNode)
{
next = nextNode;
} // end setNextNode
} // end Node
} // end LinkedStack

最佳答案

最简单的解决方案就是调用 this.pop() n 次。为此,您需要使用循环。

看起来像是你的作业,所以我不会展示代码示例。

关于java - Java中Stack的删除方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com