求解一个数据结构设计问题
本人不懂数据结构,有个应该比较简单的问题,请高手们帮忙看看,先叩谢啦~ hoho
问题是这样的:
场景: 有三个元素 a1,a2,a3 ; 它们在现实世界中对应的都是a这个事物, a1,a2,a3只是三种不同的表现形式,但有时候这三种
表现形式中的两种或者三种又会完全相同;
要在内存中建立一种关系,以方便操作1的效率,同时这种关系需要被持久化,所以同时要考虑存储效率;
操作1: 已知a2,要能快速找到a2对应的a1和a3或者返回找不到; 同理,已知a1或已知a3也要能快速找到对应另外两种形式;
操作2: 如果三个元素中的,其中1个或多个的表现形式变化了,比如a1变成了a1',要能更新原来(a1,a2,a3)的关系到(a1',a2,a3)
操作3: 能删除(a1,a2,a3)这个关系中的任何一个,比如a2,那么要保留(a1,a3)的关系以方便从a1找到a3,或从a3找到a1; 当然也可以理解成这三者的关系仍然存在,只不过通过a2去找另外两个的时候返回找不到,通过另外两个去找a2也是返回找不到
这种数据结构和算法需要在元素扩展到有n个(10<n<30)的时候, (a1,a2,a3,....an) 元素间相互查找时的时间和空间效率仍然很高 !
简单的说可能就是一种多对多的关系吧,请问怎么设计这个数据结构啊?!