Data structures 如何使用堆栈实现链表

Data structures 如何使用堆栈实现链表,data-structures,Data Structures,我知道使用链表实现堆栈是可能的。是否可以使用堆栈实现链表? 如果可能的话,怎么办?我没有从任何地方得到任何推荐信 如果是单链表,则通过在头部添加来实现push,通过从头部删除来实现pop。您不想使用尾部,因为在执行pop时,需要从头到尾不断迭代以找到新的顶部 这里有一个例子: 如果它是一个双链接列表,选择一个端点并通过在该端点添加和删除来实现push和pop。任何一端都将与另一端一样高效,因为您有双向的指针,因此您可以在弹出后轻松找到新的顶部 为了回答第二个问题,我认为不能使用堆栈实现链表。堆栈

我知道使用链表实现堆栈是可能的。是否可以使用堆栈实现链表?
如果可能的话,怎么办?我没有从任何地方得到任何推荐信

如果是单链表,则通过在头部添加来实现
push
,通过从头部删除来实现
pop
。您不想使用尾部,因为在执行
pop
时,需要从头到尾不断迭代以找到新的顶部

这里有一个例子:

如果它是一个双链接列表,选择一个端点并通过在该端点添加和删除来实现
push
pop
。任何一端都将与另一端一样高效,因为您有双向的指针,因此您可以在
弹出后轻松找到新的顶部


为了回答第二个问题,我认为不能使用堆栈实现链表。堆栈是比列表更简单的ADT。

您可以使用两个堆栈模拟链表。一个堆栈是“列表”,另一个用于临时存储

要在头部添加项目,只需将项目推到堆栈上。要从头部移除,请从堆栈中弹出

要插入中间的某个位置,请从“列表”堆栈中弹出项目,并将它们推到临时堆栈上,直到到达插入点。将新项目推到“列表”堆栈上,然后从临时堆栈中弹出并推回到“列表”堆栈上。删除任意节点也类似


顺便说一句,这不是非常有效,但事实上它会起作用。

请提供所需的更多信息/代码库?是的,但是使用Perl、Python、C++、Swift。目标C.C?