由于我已经学习了数据结构,我知道除了堆栈和堆之外,还有很多其他的数据结构,为什么现在的进程在它们的地址空间中只包含这2种模式作为“标准设备”?是否会有新的内存使用模式?
谢谢你的回复。是的,我意识到我的陈述有问题。堆数据结构与进程地址空间中的堆不相同。但是,我想知道的是,除了堆栈区和堆叠区之外,在proecss地址空间中,是否有任何新的使用内存的范例?似乎其他的内存使用方式是建立在这两种基本范式之上的。这两种范式是某种元范式吗?
发布于 2010-02-23 03:07:15
让我们想一想。我们有两个基本的存储规则。连续的和支离破碎的。
毗连。
我们可以将两个约束组合成一个Dequeue.
所以。这是一系列受入口顺序限制的相邻结构的变化。其中有多个实现.
支离破碎:
您可以使用关系-列表和树之类的分段存储。
我们在做什么?一打?
您也可以将其视为“集合”,而不考虑存储。在本例中,您混合了存储规则(heapish或array-ish)。
书包:允许带复制件的无序收藏。您可以在多个存储规则上构建一个包: LinkedBag、TreeBag、ArrayBag、HashBag。链接和树使用分段存储,数组和哈希使用连续存储。
集合:没有重复的无序集合。没有索引。再次: LinkedSet,TreeSet,ArraySet,HashSet。
列表:已订购的收藏。按位置编制索引。再次: LinkedList,TreeList,ArrayList,HashList。
映射:键值关联集合。按键编制索引。LinkedMap,TreeMap,ArrayMap,HashMap。
发布于 2010-02-23 02:35:32
请注意,“堆”(可以按随机顺序分配和释放内存的内存区域)与称为“堆”(优先级列表)的数据结构无关。
顺便说一句,是的,除了堆栈和堆之外,还有第三种内存使用模式:静态存储;-)
发布于 2010-02-23 02:28:42
想到了FIFO。处理器之间共享内存。消息传递会成为一种记忆模式吗?
https://stackoverflow.com/questions/2315760
复制相似问题