我是数据结构概念的新手,我创建了一个 Stack 供我自己使用。
public class ArrayBasedStackImpl<T> {
@SuppressWarnings("unchecked")
private T[] DataStack= (T[]) new Object[10];
private int stack_pointer=-1;
public void push(T t) throws Exception
{
if(stack_pointer>9)
{
throw new Exception("Stack is full");
}
DataStack[++stack_pointer]=t;
}
public T pop() throws Exception
{
if(stack_pointer==-1)
{
throw new Exception("Stack Empty");
}
else
{
return DataStack[stack_pointer--];
}
}
public T peek()
{
return DataStack[stack_pointer];
}}
我一开始就使用数组作为后端存储。在真正全面实施之前,我有几个问题如下
使用 throw new Exception 是个好主意,还是我应该为此编写自己的异常类,考虑到堆栈内存有限的情况。
Array 对于基于 Stack 的实现来说实际上是一个好主意吗?我的使用场景是我将 10 个相当大的对象推入其中,因此我希望能够在弹出堆栈项后释放内存。如何删除数组中的项目,我用谷歌搜索了很多,但找不到任何好的东西。当我想从内存中清除它时,链接列表在这个地方会更好吗?
我在这里使用泛型,将 Array 与泛型一起使用是一种不好的做法吗?