- 博客(0)
- 资源 (1)
- 收藏
- 关注
C语言实现四叉树的一个思路
1. 用8*8数组存储栅格数据;
2. 用指向数组的链表存储值,实现链表的结构体如下:
节点:struct Node{
int depth;//该节点的深度
int value;//该节点的值
int Morton;//该节点的莫顿码
bool exist;//该节点的空间是否释放,若是true则释放
bool notnull;//该节点是否有值
struct Node *last;//指向上一个节点
struct Node *p[2][2];//指向下四个节点
};
3. 根据rootnodep->p[i][j]->p[m][n]->p->[x][y]链接4×4×4=64个节点。
4. 根据节点的exist值,决定是否释放该节点的内存,节约内存空间。
5. 根据节点的notnull值,决定其子节点的exist值,若notnull值为true,则该节点的下一节点的exist值为true
6. 若notnull为false,则其value为NULL;
7. 每个节点的莫顿码的值,符合标准,及可以通过莫顿码,确定该节点在四叉树中的位置。
2015-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人