请教个多对多的问题。。谢谢。。

[复制链接]
2559|9
 楼主| LPcfANS 发表于 2009-4-10 10:44 | 显示全部楼层 |阅读模式
有两组字符串A,B。
A有10个字符串 ,B有35个。
A中的每一个字符串对应B中的1或2个或3个或。。。7个,对应不重复。
如:A1--》B1,B2,B3
    A2--》B4,B5
    A3--》B6,B7,B8,B9
。。。。。
问:用哪种方法可以简单快捷把他们联系起来呢?
我现在用的是SWITCH CASE 和枚举变量结合 ,感觉不是很好。
emailli 发表于 2009-4-10 10:59 | 显示全部楼层

写一个函数

传递进去的参数是A
传递出来的参数是结果


 楼主| LPcfANS 发表于 2009-4-10 11:59 | 显示全部楼层

谢谢。。有没有一种数据结构,可以直接连起来?

昨天看了一下数据手册,没发现。
HWM 发表于 2009-4-10 12:05 | 显示全部楼层
songbangyan 发表于 2009-4-10 12:58 | 显示全部楼层

组合为二维数组

 楼主| LPcfANS 发表于 2009-4-10 13:05 | 显示全部楼层

二位数组?不是固定的对应。链表我也看了,没弄出。

谢谢。。。
emailli 发表于 2009-4-10 15:16 | 显示全部楼层

既然这样。你做一个这样的数据结构

第一个数据是来源与A
第二个数据是A关联的B的个数
第三个,第四个等是B的一个列表
不足补0
以最长的一个组合为这个数组的长度

这样你只要找到了Ax,就根据Ax后面的长度值,可以知道后面有几个关联的Bx

随后你就知道了关联的Bx到底是什么了
 楼主| LPcfANS 发表于 2009-4-10 17:28 | 显示全部楼层

谢谢emailli。。。。

bjc125 发表于 2009-4-10 20:05 | 显示全部楼层

路过 学习中

刘前辈 发表于 2009-4-10 21:20 | 显示全部楼层

唉, 还要自己想方法?

书上早就有了!
《C和指针》P163 - “指针数组”
char const keyword[ ]={
"do",
"for",
"if",
“register",
"trturn",
"switch",
"while"
};

指针指向的字符串“数组”可以不等长。

判断参数是否于一个关键字列表中的任何单词匹配,并返回匹配的索引值。

int lookup_keyword(char const *const desired word,
char const *keyword_table[ ],int const  size)
{
.......
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

1614

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部