今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验

求最小数生成问题的源程序和电子版设计报告!


一 设计课题:最小数生成问题的设计和实现
二 按递增次序生成集合M的最小的n 个数,M定义如下:
1)1∈M.
2)若x∈M,则2x+1∈M,3x+1∈M.
3)无别的数属于M
要生成的数组M中的最小的n个数,首先1为这n个数中的第一个数,再由1递推出余下的n-1个数.设n个数在数组M中,2x+1与3x+1均作为一个列队,从两队中选一个排头
(数组较小者")送入数组中,所谓"排头"就是队列中尚未选入M的第一个的数.这里用p2表示2x+1这一列的排头,用p3表示3x+1这一列的排头.


答案或建议:


Boolean Search (int a, int b[ ])
{
for (i=1;a<=b[i];i++)
if (a=b[i])
return true;
return false;
}
void Create_min100_M (void)
{
int m[101];
m[1]=1;
int i=1;
float x,y;
for (n=2;ip1=(struct a *)malloc(sizeof(struct a));
p->p2=(struct a *)malloc(sizeof(struct a));
printf("请输入\n");
scanf("%d",&p->p1->data);
printf("请输入\n");
scanf("%d",&p->p2->data);
if(p->p1->data!=0)
{pp=p->p1;
k(pp);}
else p->p1=null;
if(p->p2->data!=0)
{pp=p->p2;
k(pp);}
else p->p2=null;
}
print(struct a *p)
{struct a *pp;
printf("%d,%d,",p->p1->data,p->p2->data);
if(p->p1->p1!=null)
{pp=p->p1;print(pp);}
if(p->p2->p2!=null)
{pp=p->p2;print(pp);}
}
main()
{p=(struct a *)malloc(sizeof(struct a));
printf("请输入\n");
scanf("%d",&p->data);
k(p);
printf("%d,",p->data);
print(p);
}
现在这个程序的二叉树就像一个最优二叉树.如下,
1
-----------------------
2 3
-----------------
4 5
----------------
6 7


转载地址来自于:http://www.baikewenda.com/tech/dev/6/9/a1157704.htm

推荐内容

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号