我正在参加CS课程,但坦率地说,我不知道讲师讲的是什么抽象数据类型代数。这并不是我很容易在网络上找到解决方案的原因,我想也许社区中的某个人会对问题有更深刻的洞察力或未解决的问题。如何理解ADT(抽象数据类型代数)?
堆栈:
isempty(createstack()) = true
isempty(push(n, s)) = false
top(push(n, s)) = n
pop(push(n, s)) = s
队列:
isempty(createqueue()) = true
isempty(add(n, q)) = false
front(add(n, q)) = n, if q is empty
front(add(n, q)) = front(q), if q is not empty removefront(add(n, q)) = q,
if q is empty removefront(add(n, q)) = add(n, removefront(q)),
if q is not empty
符号无疑是一个有点奇怪......什么是高于平均实质〜我明白队列的一般行为和作为先进先出和先进先出的堆叠。
没有那些只是规则描述它是如何工作的? 。例如“isempty(add(n,q))= false”...如果将N添加到队列Q中,Q不是空的...如果将N添加到Q并且Q是空的,前面是N – 2013-02-09 22:28:03
即可。在演讲中,演讲者将演讲者的方括号内的括号括起来,用于某些复杂的抽象运算符。 – 2013-02-09 22:51:49
这里没有“ADT代数”。该文章包含操作和*伪代码*(这意味着,它应该是“在上下文中可理解的”,但没有其他)描述了预期的操作行为。分别阅读堆栈或队列,以了解具体的实现细节/示例和“真实”使用案例。 – 2013-02-09 23:38:36