数据结构可以由另一个数据结构构成吗?

Posted

技术标签:

【中文标题】数据结构可以由另一个数据结构构成吗?【英文标题】:Can data structure be structured by another data structure? 【发布时间】:2021-11-04 15:38:19 【问题描述】:

我有点困惑。 Wikipedia 说 Array 是一种数据结构:

在计算机科学中,数组数据结构,或简称为数组,是由一组元素(值或变量)组成的数据结构,每个元素由至少一个数组索引或键标识。

Stack 和 queue 也是数据结构。 Learn.js 表示数组可以与堆栈和队列等数据结构一起使用。

那么,我的问题是……原来数据结构也可以用另一种数据结构来构建?或者,据我了解,数组是一种略有不同的数据结构,与堆栈和队列不同。数组按索引构造数据,而堆栈和队列按入口顺序(FIFO / LIFO)构造数据。事实证明,不同“类型”的不同数据结构可以由不同“类型”的其他数据结构构成? ...或者我误解了什么...

【问题讨论】:

【参考方案1】:

在大多数语言中,数组是基本的数据结构,而堆栈和队列是独立的数据结构。 (它们可能是使用数组构建的,但这是另一回事。)

javascript 中,数组有一些方便的函数,可以用作堆栈或队列。如果您需要 JavaScript 中的堆栈,您可以创建一个数组对象,并且只使用 push/pop 方法,而不是通过索引访问元素。

【讨论】:

【参考方案2】:

“数据结构”是一个很笼统的概念,数据结构存在于不同的抽象层次。

所以“数组”和“对象”是非常基本的数据结构——数组只是以数字索引的数据的线性集合,而对象是具有命名元素的集合。

“堆栈”和“队列”是更高级别的抽象。它们通常使用对象和数组来保存原始数据,并提供反映这些抽象使用方式的额外操作。

【讨论】:

知道了。据我所知,还有调用堆栈。事实证明,堆栈也可以构造函数的调用,而不仅仅是数组或对象。所以,从技术上讲,堆栈或队列可用于构建任何类型的数据,对吧? “堆栈”是另一个通用概念。 “调用堆栈”不是应用程序处理的数据结构,我说的是应用程序代码本身使用的堆栈。 看来你误会了。我认为(也许我不对)“堆栈”是一种数据结构。并且“堆栈”结构函数调用就像它结构数组或对象 栈基本上是任何实现 LIFO 操作的数据结构。

以上是关于数据结构可以由另一个数据结构构成吗?的主要内容,如果未能解决你的问题,请参考以下文章

Windows 服务可以使用由另一个 Windows 服务托管的 WCF 服务吗?

Angular模板不显示由另一个组件调用的方法生成的数据

不断获取本地数据存储当前正在由另一个操作在处理小型项目时使用

生产者消费者模式

在 Pandas 中基于一列保存数据并由另一列命名

计算由另一列值分组的列值在 pandas 数据框中的共现