我可以使用C++删除堆栈中的特定位置数据吗?

Can I delete the specific position data in Stacks using C++?

本文关键字:定位 置数据 可以使 C++ 删除 堆栈 我可以      更新时间:2023-10-16

我开始使用 Stack C++。我制作了推送和弹出的功能。当我们调用 pop 函数时,它会删除堆栈中的顶部数据或信息。

是否可以先在堆栈中找到数据位置并删除该位置的数据?

不,堆栈的全部意义在于它是FIFO,或先进先出。 您推送到堆栈上的任何数据都无法访问,直到其上的数据从堆栈中弹出。

如果您需要访问顶层下的数据,那么您只需要使用另一种数据结构,例如数组或列表。

我建议你花一些时间阅读C++数据结构。这将使您更好地了解每个数据结构的用途,以及何时应使用特定的数据结构。祝你好运!

如果您自己从头开始实现堆栈,是的。如何做到这一点取决于它是如何实现的。如果是平面内存,则需要将要删除的元素之后的元素移动到该元素的位置,从而覆盖它。如果是链表,则需要将要删除的元素之前的元素指向它之后的元素。

但对于堆栈来说,这是一个不常见的操作(堆栈通常只支持推到末端并从中弹出)。也许你想要的只是一个数组或链表。

首先让我这么说,你必须听那些说堆栈不是你需要这样玩的 DS 的家伙。堆栈设计为遵循推送和弹出操作。如果我们尝试从任何位置删除任何元素,那么为此目的拥有一个单独的数据结构有什么意义,你可以只使用 arraylist 或链表。

话虽如此,是的,您要求的可以完成,但仅仅因为它可以,它不应该是,否则,它违背了拥有这样的 DS 的全部目的。您可以轻松找到堆栈的大小,当您这样做时,您只需要遍历它并从该位置删除特定元素。但我宁愿,你不要用堆栈这样做.