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. 每个节点的莫顿码的值,符合标准,及可以通过莫顿码,确定该节点在四叉树中的位置。