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

标签 java data-structures

我在面试中被问了一个问题,如下。

我们可以在不使用数组、列表甚至节点类型的情况下实现自己的堆栈数据结构吗?

可能吗?

最佳答案

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

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

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

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

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

如果用户选择 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
}

关于java - 我们可以在java中使用数组或List创建自己的堆栈数据结构实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27519851/

相关文章:

java - 在数据库中插入一个字符数组

java - JodaTime:plusMonths(1) 两次不同于 plusMonths(2)

c - C程序中的数据结构

c++ - 如何使存储数组的二进制搜索稳定

language-agnostic - 红黑树是我理想的数据结构吗?

json - 创建用于 key 签名的有序 json 字符串

java - 使用java读取spark sql中的复杂json

java - 所有枚举的 Spring 自定义转换器

线程中的 Java 请求

python - python中这种数据结构的最佳方法是什么?