Data structures 数据结构堆栈和硬件堆栈之间有区别吗?
我和我的朋友讨论了数据结构堆栈和硬件堆栈(调用堆栈)之间的区别。我认为它们是完全一样的,因为它们都有“推”和“流行”,只能处理最新的元素。但我的朋友说他们根本不一样,但他们只有一个共同的名字“stack”。他这样认为是因为在调用堆栈中,我们可以访问不是最新的地址,这与堆栈(数据结构)的定义相矛盾。你能回答这个问题吗?第一个是数据结构,第二个是应用的数据结构Data structures 数据结构堆栈和硬件堆栈之间有区别吗?,data-structures,callstack,Data Structures,Callstack,我和我的朋友讨论了数据结构堆栈和硬件堆栈(调用堆栈)之间的区别。我认为它们是完全一样的,因为它们都有“推”和“流行”,只能处理最新的元素。但我的朋友说他们根本不一样,但他们只有一个共同的名字“stack”。他这样认为是因为在调用堆栈中,我们可以访问不是最新的地址,这与堆栈(数据结构)的定义相矛盾。你能回答这个问题吗?第一个是数据结构,第二个是应用的数据结构 与现实世界中的大多数数据结构应用程序一样,它不是纯粹的数据结构,并且为方便或快速而添加了一些功能。以下是一些区别: 通常,您只能有一个硬件
与现实世界中的大多数数据结构应用程序一样,它不是纯粹的数据结构,并且为方便或快速而添加了一些功能。以下是一些区别:
- 通常,您只能有一个硬件堆栈(每个线程)李>
- 您可以根据需要拥有任意多个软件堆栈
- 通常,硬件堆栈由CPU直接管理
- 软件堆栈访问由代码显式管理
- 硬件堆栈通常与调用堆栈(调用函数及其参数)直接相关
- 软件堆栈独立于硬件调用堆栈(您可以在一个函数中推送项,并在另一个函数中弹出它们,而与硬件堆栈级别无关)
- 硬件堆栈内存由操作系统或CPU管理(可能受到限制)
- 软件堆栈内存由应用程序管理