|
发表于 2013-3-6 00:05:09
|
显示全部楼层
看了9楼的问题补充:
c) 对 n>1, 第n层会有n * (n-1层的节点数) 个节点
说明:第二层2个节点,第三层6个节点,第四次12个节点,第五层5*(5-1)=20个节点~~~~
d) 对 n>=1 and n<=25, 第n层的每个点都有n+1个下节点(儿子)
说明:第二层2个节点,第三层6个节点,第四层12个节点,第五层12*5=60个节点~~~
按照条件c来创建这棵树我目前也没办法,但是按照条件d来创建这棵树,我写了一个函数,希望朋友们给予指正,谢谢。
struct QElemType
{
CSTree tr;
int n;
};
CreateCSTree(CSTree &T)
{
int i, m;
LinkQueue q;
QElemType p;
CSTree t;
T = (CSTree)malloc(sizeof(CSNode))
if(!T)
exit(OVERFLOW);
InputData(T->data);//数据写入函数,需要自己写
p.tr = T;
p.n = 2;
EnQueue(q, p);
while(!EmptyQueue && p.n != 27)
{
DeQueue(q,p);
p.tr = p.tr->leftchild;
for (i=0; i<p.n; ++i)
{
p.tr = (CSTree)malloc(sizeof(CSNode))
if(!p.tr)
exit(OVERFLOW);
InputData(T->data);
m = p.n+1;
p.n = m;
EnQueue(q,p);
p.tr = p.tr->nextchild;
}
p.tr = NULL;
}
DestroyQueue(q);
} |
|