【发布时间】:2013-01-30 14:45:00
【问题描述】:
我正在尝试为我的研究论文实现某种算法(编程不是我的主要研究领域),我需要一些帮助。考虑以下类型的数据结构(例如 a 和 b),其中我们有一条线性时间线,并且对象放置在该时间轴上,彼此相距一定距离(实际上这些对象表示数据包,其宽度等于传输数据包所需的时间)。我想将它们对齐在右侧,使其成为我们的参考点(时间 t=0),然后合并这两个列表(a 和 b),如果我可以称它们为列表,并得到一个结果列表,如 c 所示。重叠的对象被移动以形成单个列表,并且这些对象之间的间隙相应地发生变化。知道我应该如何进行吗?链表? (如果它们存在于 python 中)。可以将两个以上的列表合并到一个列表中。提前致谢
____ _____ ____
__| a3 |________| a2 |__________| a1 | (a)
____ _____ ____
__| b3 |___________| b2 |_______| b1 | (b)
____ ____ ______ _____ ____ ____
_______| a3 || b3 |___| a2 || b2 |_| a1 || b1 | (c)
【问题讨论】:
-
它们是从右到左对齐的吗?
-
是的,它们是从右到左对齐的。
-
如何处理碰撞?例如,如果来自 b 的数据包不能容纳在来自 a 的 2 个连续数据包之间?
-
另外,如果a和b上同时有数据,那么数据包应该按什么顺序拼接呢?
-
取决于与我们参考的距离(即最右侧),先到先得政策。我的意思是最靠近最右侧的数据包在合并后也应该更靠近最右侧。所以我们首先把来自a的两个数据包,然后来自b的一个数据包。或者我们通过将 a 的数据包移向右侧,将第一个数据包从 a 然后从 b 再从 a 放入,这一切都取决于与其余发生冲突的数据包相比,哪个更靠近右侧。如果两者距离完全相同,则可以先放置任何人。
标签: python merge linked-list