将堆栈和队列定义为抽象数据类型

时间:2017-02-04 22:56:50

标签: types stack queue abstract-data-type

我目前正试图以“精确”的方式定义抽象数据类型,但我目前正在努力解决它。练习的全部内容是定义它们而不指定任何实现细节。我在这里使用stackqueue,因为它们是简单的示例,但问题可以推广。到目前为止,我的尝试都是基于限制因素:

堆栈是具有构造函数Stack()和方法push(o)pop()的对象类型,因此对于任何List originalList(伪代码):

stack = Stack()
for o in originalList:
    stack.push(o)
while obj = stack.pop() != NIL:
    newList.append(obj)
assert(newList == originalList.reverse())

对于队列,它将是相同的,但最后一行将是assert(newList == originalList)

我的问题是这个“定义”需要“实际计算”和“断言”,与此相反。静态地说LinkedList是一对(value, next),所以next是指向同一类型元素的指针。

还有更好的方法吗?有人能指出我合适的文献吗?

0 个答案:

没有答案