如何根据分隔符映射N个关键字

时间:2011-08-29 11:14:24

标签: c++

我有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个组合。请告诉我如何做到这一点的逻辑。

1 个答案:

答案 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. 在主列表中创建主节点,或添加到子列表。 (见下文)
  5. 您需要一个二维列表。

    1 -> 2 ->  3 -> 4
    |    |     |    |
    22-> 23 -> 24-> 25 
    |    |     |    |
    103->104-> 105->106
    

    所以每个节点都需要至少 2个指针(你可以称它们为“右”和“向下”,两个都是“106”的NULL),但是有4个可能更好(向上和向左...两个NULL为“1”)。这允许动态重新调整大小,添加等...并且还允许您在每个级别具有不同数量的映射。 我确信有很多方法可以做到这一点。