我尝试调试使用树结构搜索粒子的程序。如果树结构看起来正确,我想做一个视觉证明。因此,我想在控制台中绘制树结构(仅适用于小树)。
我执行以下操作以通过树结构进行后序步行。
void treeWalk(TreeNode *t, int level){
if(t != NULL){
for(int i=0; i<POWDIM; i++){
if(t->son[i] != NULL){
printf("down to son %d level %d)\n", i, level);
treeWalk(t->son[i], level+1);
}
}
// Operation on *t
if(isLeaf(t) == TRUE)
print("son is a leaf\n");
else
print("son is a node");
// End of operation on *t
}
}
其中isLeaf(t)
是区分粒子(叶子)和没有粒子的节点的函数。 TreeNode
是一个定义为:
typedef struct TreeNode{
Particle p;
struct TreeNode *son[DIM*DIM];
}
DIM
为2或3。
有没有一种简单的方法可以将这样的树结构打印到控制台?我想象的是:
0
/ \
/ \
0 0
/ \ / \
x x x x