作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的教授要我绘制堆栈吗?他想让我付诸行动吗?我觉得自己很愚蠢,但这不像任何人告诉我的那样!感谢您的帮助。
哇,你们真快。已经谢谢你了。完整的问题是:考虑两个堆栈,每个堆栈的大小为 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
变量 stack1
、stack2
、stack1sz
、stack2sz
和 maxsz
应该以它们在函数调用之间存活的方式声明(即,不是局部变量)。所有其他的都是暂时的。
如果您在将其转换为特定语言时遇到问题,请发表评论,我会提供有关查找内容的指导。
关于stack - "Implement a stack"实际上是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225542/
我是一名优秀的程序员,十分优秀!