问题:假设您传递的是包含2D线段的大小为n的列表。每个线段由2个点组成,(X1,Y1)和(X2,Y2)。提出一种算法和结构,将这些线分组为连续折线(链)。 注意:连续折线仅表示实体链。想象一个包含4条线的正方形,并且它们被链接以便在正方形周围移动。
我的初始解决方案:创建顶点类和行类。每行都有数据成员指向开始和结束顶点。然后算法遍历每个顶点以查找是否有任何线段具有共同的顶点然后对它们进行分组。 我不确定这样做是否有效
答案 0 :(得分:1)
对您的段列表进行单传递,反引用每个顶点以指向将其作为端点的每个段。您现在有了一个二分图(顶点和段),可以有效地应用已知算法来查找图中节点的闭包。每个闭包都是折线。