读书人

请问一种数据结构可是实现类似多表的功

发布时间: 2012-07-29 15:26:14 作者: rapoo

求助:请教一种数据结构可是实现类似多表的功能
这个题目不知描述得合不合适 具体描述如下:
结点的数据大概定义如下:

C/C++ code
struct{   int a;   int b;   int c;   int data;   //指针域相关成员}

其中a,b,c是结点的标识符,每个结点的取值不同,例如(0,0,0),(0,1,0)等
首先将具有相同的a的取值的结点组合到一起,形成一个队列,例如
(0,0,0)->(0,0,1)->(0,1,0)->(0,1,1)
然后按照a的值,按从小到大的顺序将之前组合的队列拍好,例如
(0,0,0)->(0,0,1)->(0,1,0)->(0,1,1)


(1,0,0)->(1,0,1)->(1,1,0)->(1,1,1)


(2,0,0)->(2,0,1)->(2,1,0)->(2,1,1)


(3,0,0)->(3,0,1)->(3,1,0)->(3,1,1)
所有的数据都如上所示是有序排列的,有没有什么比较好的数据结构可用来表示
在查找时需返回比给定检索值小的所有结点
例如要查找(1,0,1)则返回(0,0,0),(0,0,1),(1,0,0),(1,0,1)
有其他的好的数据结构也可以
谢谢



[解决办法]
这只是单纯的排序,所以只需要简单的结构就足够了:
C/C++ code
struct{   int a;   int b;   int c;}
[解决办法]
那你的结构很合适了,如果想扩展的话,那么可以改为void* data,这样以后想存放什么数据都行。
[解决办法]
struct{
union U {
char abc[4];
char a,b,c;
}
int data;
//指针域相关成员
}

读书人网 >C语言

热点推荐