我们可以用java中的out数组或List创建自己的堆栈数据结构实现吗?

时间:2014-12-17 06:53:34

标签: java data-structures

我在面试中被问到如下问题。

我们可以在不使用数组或列表甚至节点类型的情况下实现自己的Stack Data结构。

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用调用堆栈,但这在大多数情况下都没用。

假设您有一个交互式应用程序,用户可以在其中选择推送或弹出元素。

你将拥有一个带有单个局部变量的方法,该变量保存堆栈的顶部元素。

该方法将要求用户选择是弹出最后一个元素还是推送新元素。

如果用户选择push,该方法将对其自身进行递归调用,将push元素作为参数传递(将存储在被调用方法的局部变量中)。

如果用户选择pop,则该方法将其局部变量返回给调用方法。

这是一些伪代码:

public static Object stack (Object element)
{
    Object top = element;

    int input = 0;
    while (input != 2) {
        input = ... // get user input - 1 for push 2 for pop
        if (input == 1) {
            Object newElement = ... // get input from user
            Object poppedElement = stack (newElement); // push the new element
        } 
    }
    return top; // pop the top of the stack
}

答案 1 :(得分:1)

好吧,如果你不能使用任何集合或数组,你可以使用一个文件,并且该文件的每一行都可以是一个推送到堆栈(文件)的元素,并给出堆栈LIFO的原理,而不是文本文件的第一行需要在pop中检索,或者推送的元素将添加到文本文件的第一行。

相关问题