给数据结构初学者:跨过算法和程序之间的鸿沟 总结以上是DEVMAX为你收集整理的给数据结构初学者:跨过算法和程序之间的鸿沟全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。
c – 是否有任何类似数组的数据结构可以在两侧增大? 如果没有,您是否认为有更好的解决方案而不是创建这样的数据结构?解决方法您是否考虑过将std::partition与自定义函数一起使用,如下例所示:这样你就可以在O时间内从矢量中删除元素.
c – 将数据结构传递给不同的线程 解决方法我希望每个线程都创建自己的数据结构副本,例如您在构造函数中传递结构,然后显式创建本地副本.然后,您可以保证线程具有不同的副本.(你说它是通过引用传递的,并且这会调用复制构造函数.我认为你的意思是通过值传递?
c – 联合查找数据结构 对于许多问题,我看到的解决方案是使用union-find数据结构.我试图阅读它,并考虑如何实现(使用C).我目前的理解是,它只不过是一套.所以要找到属于哪一个元素,我们需要n*logn操作.当我们要执行工会时,我们必须找到需要合并的两个集合,并对它们执行一个set_union.这对我来说看起来并不高效.我对这个数据结构的理解是正确的还是我错过了什么?
c – R树50,000英尺概述? >此外,该项目是在C中,我不必重新发明这个,所以如果你使用了RTree的现有开源C实现,我会对你的经历感兴趣.更新:Thisblogpost描述了区域划分空间的直接搜索算法.希望有助于未来的读者.解决方法您是否考虑过其他数据结构?我相信,PointQuadtree不是R-tree,而是更有效地满足您的需求.SpatialIndexDemos为可能的数据结构列表提供了一些演示,包括R-tree和PointQuadtree.希望它能给出洞察力.
void *作为C中的通用,是否安全? 准备好一个问题有点“扭曲”…我以前已经实现了很多数据结构,使用宏我可以实现某种类型的通用.但是,如果可以使用void指针实现通用数据结构,但是我想要能够使用typecheking…我不知道是否清楚我想要说的是什么…我依靠你的经验来答复!解决方法简单来说,没有方便的方式在C中获得类型安全的通用数据结构和函数.非通用:通用但不安全–一个void*没有类型信息:安全,但丑:相同的想法,但稍微丑陋:通用而安全,但C,而不是C:
c – 算法和数据结构 我目前正处于第一个算法和数据结构类的中间位置.不幸的是,我的老师不是很好,我们使用的在线书籍在描述中非常模糊(http://people.cs.vt.edu/~shaffer/Book/)到目前为止我已经设法保持A,主要是由于运气和常识,但它开始得到很多现在我们正在处理排序,搜索和更高级的数据结构(如图形).我想知道是否有任何在线资源可以帮助我更好地学习这个主题,你会推荐.我理解了很好地了解这个主