我有N个关键字,可以按如下方式进行映射:
1,2,3,4----/5,6,7,8----/9,10,11,12----/--------
从上面一行我应该能够将1到5,2到6,3到7映射,依此类推。我也应该能够映射1到9,1到10,1到11,1到12等,就像我应该能够映射N个组合。我应该以这样的方式使这个泛型,它应该使用N个组合。请告诉我如何做到这一点的逻辑。
答案 0 :(得分:0)
我不确定,但我认为你想要的是这样的映射:
Input: 1,2,3,4\22,23,24,25,\103,104,105,106\
并以1->(22)->(103), 2->(23)->(104) etc...
之类的地图结束。
为了管理您需要以下元素:
您可以编写自己的链接列表(这是一个很好的练习而不是太复杂),或者您可以使用其中一个STL / Boost容器。 一般程序是
您需要一个二维列表。
1 -> 2 -> 3 -> 4
| | | |
22-> 23 -> 24-> 25
| | | |
103->104-> 105->106
所以每个节点都需要至少 2个指针(你可以称它们为“右”和“向下”,两个都是“106”的NULL),但是有4个可能更好(向上和向左...两个NULL为“1”)。这允许动态重新调整大小,添加等...并且还允许您在每个级别具有不同数量的映射。 我确信有很多方法可以做到这一点。