如何显示二叉树
最近想练习下二叉树的代码,发现大部分练习都是在纸上画个二叉树,然后再写什么先序、中序、后序,最后将运行结果对比纸上的二叉树检验,可你怎么知道你创建的二叉树就是正确的呢?因此就费了点功夫写了个二叉树显示代码,虽然能完成显示功能,但我觉得算法稍嫌啰嗦,应该有更简洁的写法,特提出供各位集思广益,我的不含二叉树显示的练习代码如下(同时提供一个4层满树和一个6层随机树显示效果):
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char cnum;
typedef struct node
{
char c;
node *lc,*rc;
}tree,*list;
list creat(list root,int lv)
{
if(lv<2||(rand()%6<6&&lv<4)) //创建4层满树
//if(lv<2||(rand()%6<4&&lv<6)) //创建6层随机树
{
root=(list)malloc(sizeof(tree));
root->lc=root->rc=NULL;
root->c=cnum++;
}
else return NULL;
root->lc=creat(root->lc,lv+1);
root->rc=creat(root->rc,lv+1);
return root;
}
void listtree(list root)
{//显示树
//各位高手可在此大显神通,填充可显示二叉树的代码
}
void main()
{
list root=NULL;
srand((unsigned int)time(NULL));
cnum='A';
root=creat(root,0);
listtree(root);
}









~

看来竖着看就变成中序遍历了~而且深度和空格的关系容易联立很多到底还是学习了