stack - "Implement a stack"实际上是什么意思?

标签 stack implementation

我的教授要我绘制堆栈吗?他想让我付诸行动吗?我觉得自己很愚蠢,但这不像任何人告诉我的那样!感谢您的帮助。

哇,你们真快。已经谢谢你了。完整的问题是:考虑两个堆栈,每个堆栈的大小为 n(即,每个堆栈最多可以容纳 n 个元素)。如果两个栈中的元素个数之和为 n,那么任何额外的 PUSH 操作都应该导致溢出错误。 (注意:你的实现应该注意元素 POP 应该与它们被 PUSH 的顺序相反)。

***我不是要答案我只是想知道...你认为他要我做什么?因为他仍然没有回复我的电子邮件,我需要在午夜之前完成。

最佳答案

“实现”一般意味着写,纯粹而简单。您的教育 worker 希望您编写能够完成作业要求的代码。

固定大小的堆栈 (n) 可以很容易地实现为具有当前堆栈深度的数组,但是你的分配有一个额外的扭曲,因为你只允许有 两个 堆栈上的 n 个元素组合在一起,而不是每个 堆栈。

我会按如下方式实现它(仅伪代码,因为它是家庭作业,无论如何,您都没有指定语言):

# Create the two stacks, each of size sz.
init_stack (sz):
    allocate stack1 as array[1 to sz] of integer
    allocate stack2 as array[1 to sz] of integer
    set stack1sz to 0
    set stack2sz to 0
    set maxsz to sz

# Push the value val onto stack stk.
push_stack (stk,val):
    if stk is not equal to 1 or 2:
        return error
    if stack1sz + stack2sz is equal to maxsz:
        return error
    if stk is 1:
        add 1 to stack1sz
        set element stack1sz of stack1 to val
    else:
        add 1 to stack2sz
        set element stack2sz of stack2 to val

# Pop a value off stack stk.
pop_statkck (stk):
    if s is not equal to 1 or 2:
        return error
    if stk is 1:
        if stack1sz is 0:
            return error
        set val to element stack1sz of stack1
        subtract 1 from stack1sz
    else:
        if stack2sz is 0:
            return error
        set val to element stack2sz of stack2
        subtract 1 from stack2sz
    return val

变量 stack1stack2stack1szstack2szmaxsz 应该以它们在函数调用之间存活的方式声明(即,不是局部变量)。所有其他的都是暂时的。

如果您在将其转换为特定语言时遇到问题,请发表评论,我会提供有关查找内容的指导。

关于stack - "Implement a stack"实际上是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225542/

相关文章:

c - 在c中分离运算符和数字的最佳方法是什么

c# - Collection<T>的IEnumerable的实现在哪里

algorithm - 剥离填充后解码base64

澄清 C 中实现定义的行为

Java : Finding String literals in String

.net - IIS 中的 .NET 代码出现堆栈溢出,但 Winforms 中没有

c++ - 可以做些什么来优化离开方法和清空局部变量堆栈所花费的时间?

java - 使用堆栈反转数组

coding-style - PyTorch 中是否存在干净且可扩展的 LSTM 实现?

java 在实现类中声明方法,而不是在接口(interface)中声明方法