数据结构 - 序列
struct Data {
int value;
}
Data data_list[30];
std::vector
链表 - Link List
struct ListNode {
Data *data;
Node *next;
}
ListNode *first = new ListNode();
ListNode *second = new ListNode();
first->next = second;
- 按需分配
- 不需要像 Array 一样预先分配所有空间
间接寻址 List
struct Data {
int value;
}
DataNode *first = new DataNode();
DataNode *second = new DataNode();
DataNode* nodes[30];
nodes[0] = first;
nodes[1] = second;
- 这种用法实际上类似于 map
模拟指针 - Simulated Pointer
如果
struct ListNode {
Data *data;
Node *next;
}
变成
struct ListNode {
Data *data;
int next;
}
ListNode space[30];
ListNode *first = &space[3];
ListNode *second = &space[7];
first->next = 7;
其中 next
表示一块预先分配的连续内存中的位置。
- 这实际上是一种内存池的应用。