如何创建一个表的链表,一个表代表一组元素
问题描述:
我想要做的是用my other question代表代码。如何创建一个表的链表,一个表代表一组元素
基本上我需要在内存中保留一个元素表(结构),没有固定数量的元素可以存在,但它很小,但我仍然不能使用数组。
而且我不想使用元素的链接列表,因为我不想每次需要更改任何内容时都继续添加和删除元素。
相反,我想要做的是用一个malloc分配一块内存,那块内存就足够大,可以放100个元素,如果在极少数情况下需要更多,我可以分配另一块大块的100个元素,并将其链接到原来的....
这是一个好主意吗?这种结构有没有名字?它有点像动态扩展数组?人们真的使用这个吗?或者我只是在破解?如果这是个坏主意,你推荐使用什么?
感谢
typedef struct Tb{
POINT points;
POINT *next;
} TABLE;
typedef struct Pt{
int x;
int y;
}POINT;
POINT *mypoints;
int a = 10;
int b = 1000;
mypoints = (POINT*) malloc (100 * sizeof(POINT));
for (int i =0; i < 100; i++) {
mypoints->x = a++;
mypoints->y = b++;
++mypoints;
}
答
这样的分配方案已经从早期的Unix文件系统Python的内部列表中分配使用,随处可见。
密码!
好的,谢谢,它叫什么?我可以使用任何术语在Google上查找其他一些真实世界的示例,也许是一些示例代码? 将POINT * next元素添加到我的POINT结构中会是一个糟糕/好主意吗? – emge 2010-06-24 03:18:07
@emge如果您使用列表或树进行跟踪,则称它为堆。一个Vector,如果你有一个动态数组 – 2010-06-24 03:26:13