#include
#include
typedefstructstem_t*stem;
structstem_t{constchar*str;stem next;};
voidtree(introot,stem head)
{
staticconstchar*sdown=" |",*slast=" `",*snone=" ";
structstem_t col={0,0},*tail;
for(tail=head;tail;tail=tail->next){
printf("%s",tail->str);
if(!tail->next)break;
}
printf("--%d\n",root);
if(root<=1)return;
if(tail&&tail->str==slast)
tail->str=snone;
if(!tail)tail=head=&col;
elsetail->next=&col;
while(root){// make a tree by doing something random
intr=1+(rand()%root);
root-=r;
col.str=root?sdown:slast;
tree(r,head);
}
tail->next=0;
}
intmain(intc,char**v)
{
intn;
if(c<2||(n=atoi(v[1]))<0)n=8;
tree(n,0);
return0;
}
网友评论