数据结构可以由另一个数据结构构成吗?
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 服务吗?