2011-08-29 57 views
-1

Ñ关键字我具有可以被映射Ñ关键字如下:如何映射基于定界符

1,2,3,4----/5,6,7,8----/9,10,11,12----/-------- 

从上面的线I应该能够1映射到5,2到6,3到7等等。我也应该能够映射1到9,1到10,1到11,1到12等,就像我应该能够映射N个组合。我应该以这样的方式制定这种通用的方式,使其能够与N个组合一起工作。请告诉我如何做到这一点的逻辑。

+4

这并不完全清楚。 “关键字”是什么意思? “分隔符”在哪里出现? “地图”是什么意思?请举一个你正在瞄准的输出例子。并请告诉我们你已经尝试了什么。 –

+0

你想让我们帮你什么?如何解析文字描述?如何将映射存储在内存中?请在你的问题中更具体,以便我们能够回答。 –

+0

我有一个文本框,用户在其中输入如下所示的东西: – karthik

回答

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

您需要一个二维列表。

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

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