首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据结构的“侵入性”是什么意思?

数据结构的“侵入性”是什么意思?
EN

Stack Overflow用户
提问于 2011-02-15 21:22:10
回答 1查看 18.9K关注 0票数 136

我见过“侵入式”一词用于描述列表和堆栈等数据结构,但它是什么意思呢?

您能否给出一个介入式数据结构的代码示例,以及它与非介入式数据结构有何不同?

另外,为什么要让它具有侵入性(或非侵入性)?有什么福利待遇?它的缺点是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-15 21:43:41

侵入式数据结构需要从它打算存储的元素中获得帮助才能存储这些元素。

让我重新说一遍。当你把一些东西放到数据结构中时,这个“东西”就会以某种方式意识到它就在这个数据结构中。将元素添加到数据结构会更改元素。

例如,您可以构建一个非侵入式二叉树,其中每个节点都有一个对左子树和右子树的引用,以及一个对该节点元素值的引用。

或者,您可以构建一个介入式的,其中对这些子树的引用嵌入到值本身中。

侵入式数据结构的一个例子是可变元素的有序列表。如果元素发生变化,则需要对列表进行重新排序,因此列表对象必须侵犯元素的隐私才能获得它们的协作。即。元素必须知道它所在的列表,并将更改通知给它。

ORM系统通常以侵入式数据结构为中心,以最小化大型对象列表的迭代。例如,如果您检索数据库中所有员工的列表,然后更改其中一个员工的姓名,并希望将其保存回数据库,那么当employee对象发生更改时,就会被告知侵入式员工列表,因为该对象知道它在哪个列表中。

一个非侵入性的列表不会被告知,它必须自己找出发生了什么变化以及它是如何变化的。

票数 124
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5004162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档