1.代码目的
在Leecode刷题的时候,需要查看创建的二叉树是不是正确的,所以想简单的写一个能看的树状图就好了。因为在其他题目里可能还需要重新写,因此我这段代码是想写的简短一点,自己能看就行。
注释图解什么的,等我的笔到货之后再改吧。
2.主要代码
void DispTreeLayers(Tree T){
int Depth = DepthOfTree(T);
int CacheLen;
CacheLen = 1<<Depth;
TreeElementType* Cache;
Cache = (TreeElementType*)malloc(sizeof(TreeElementType) * CacheLen);
for(int i=0;i<CacheLen;i++){
Cache[i] = INT_MAX;
}
TreeInsertToCache(T, Cache, 1);
int RegionLen = (2<<Depth) - 1;
int CacheIdx = 1;
for(int d=0;d<Depth;d++){
RegionLen /= 2;
for(int i=CacheIdx;i<CacheIdx<<1;i++){
PrintfWhiteSpace(RegionLen);
if(Cache[i] == INT_MAX){
printf("%*c",__DATAWIDTH, ' ');
}
else{
printf("%*d",__DATAWIDTH, Cache[i]);
}
PrintfWhiteSpace(RegionLen);
PrintfWhiteSpace(1);
}
Ca