首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树。 【函数】 BitTree *createbt(BitTree *bt) { BitTr
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树。 【函数】 BitTree *createbt(BitTree *bt) { BitTr
admin
2012-12-10
62
问题
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。
【说明】
下面的程序构造一棵以二叉链表为存储结构的二叉树。
【函数】
BitTree *createbt(BitTree *bt)
{
BitTree *q;
struct node *s[30];
int j,i;
char x;
printf("i,x=");
scant("%d,%c",&i,&x);
while(i!=0 && x!=’$’)
{
q=(BitTree *}malloc(sizeof(BitTree));//生成一个结点
(1);
q->lchild=NULL;
q->rchild=NULL;
(2) ;
if ((3))
{
j=i/2; // j为i的双亲结点
if(i%2==0)
(4); //i为j的左孩子
else
(5); //i为j的右孩子
}
printf("i,x=");
scanf("%d,%c",&i,&x);
}
return s
;
}
选项
答案
(1)q->data=x (2)s[i]=q (3)i!=1 (4)s[j]->lchild=q (5)s[j]->rchild=q
解析
本题考查二叉树的构造。
题目要求构造一棵二叉树,而二叉树的性质如下:如果对一棵有n个结点的完全二叉树的结点按层序编号(从第1层到第[log2n]+1层,每层从左到右),则对任一结点i(1≤i≤n),有:
(1)如果i=1,则结点i无双亲,是二叉树的根;如果i>1,则其双亲是结点[i/2]。
(2)如果2i>n,则结点i为叶子结点,无左孩子:否则,其左孩子是结点2i。
(3)如果2i+1>n,则结点i无右孩子;否则,其右孩子是结点2i+1。
下面我们来看程序。程序中声明了一个结点指针数组,用来保存生成的树中结点。用从键盘输入的方式来确定要插入的字符x和此结点在二叉树中的位置i(这个位置是指在完全二叉树中编号的位置)。
第(1)空是在生成一个新结点后的操作,生成了一个新结点后,自然要将从键盘输入的字符x值存放进来,以及修改结点的两个指针域。程序中指针域都赋了空,因此,第(1)空的任务应该是将字符x写进来,因此,此空答案为q->data=x。
第(2)空是在对结点完成操作后的操作,根据题目意思,生成的结点应该要保存到数组s中,此数组是一个指针数组,保存结点时,是将结点的地址保存进数组中相应的位置,因此,此空答案为s[il=q。
第(3)空是条件判断语句的条件,结合下面的程序可以知道,此条件语句用来判断当前结点是不是根结点,如果不是,才执行条件语句中的内容。根据上面的分析,如果i=1,则结点i无双亲,是二叉树的根,因此,此空的答案为i!=1。
第(4)空处后面有注释,说明i是j的左孩子结点,这个时候我们应该让j结点的左孩子指针指向结点i,此空就是要实现这一功能。而结点,j被存放在数组s中的第j个位置,因此,此空答案为s
->lchild=q。
从程序中很容易看出,第(5)空与第(4)空功能相似,只是说i是j的右孩子结点,因此,让j结点的右孩子指针指向结点乙此空答案为s[j]->rchild=q。
转载请注明原文地址:https://kaotiyun.com/show/onjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Windows7中,磁盘文件类型可以根据______来识别。
PowerPoint可以通过插入(55)来完成统计、计算等功能。
某企业经常需要进行大量的复杂的数据处理,在数据处理的过程中,需要注意的事项不包括(66)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Excel2007中,单元格中的绝对地址在被复制或移动到其他单元格时,其单元格地址(42)________________。
在Excel中,若要计算出B3:E6区域内的数据的最小值并保存在B7单元格中,应在B7单元格中输入______。
文件的使用权限包括完全控制、允许写入、允许读取、允许运行、允许删除等,其中完全控制、允许写入、允许读取、允许运行都允许用户进行的操作是(38)。
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
阅读以下关于Linux网卡安装和配置过程的说明,回答问题1至问题5。【说明】某个采用动态IP地址分配策略的计算机使用了最新的BCM5751网卡芯片,由于RedHatLinux9操作系统无法自动识别此硬件,需要单独安装驱动程序才能正常工作。
随机试题
Forthispart,youaresupposedtowriteanannouncementin100~120wordsbasedonthefollowingsituation.Remembertowrite
阳黄初起见表证者,治宜选用
国家对麻醉药品的管理有()。
概算指标法采用的是()。
对于未经海关许可,擅自将海关监管货物开拆、提取、交付、发运、调换、改装、抵押、质押、留置、转让、更换标记、移作他用或者进行其他处置的行为属于海关法律关系中的()。
一、注意事项1.申论考试是对应考者阅读理解能力、综合分析能力、提出和解决问题能力、文字表达能力的测试。2.作答参考时限:阅读资料40分钟,作答110分钟。3.仔细阅读给定资料,按照后面提出的“作答要求”作答。二、给定资料1
儿童有改正错误的行为表现,家长取消了限制儿童看电视的禁令,这是一种()。
改变积分次序∫01/4dyf(x,y)dx+∫1/41/2dy∫y1/2f(x,y)dx.
如果投机者预期价格上涨,但市场还没有明显上涨趋势时,也应该买入期货合约。()
Forthispart,youareallowed30minutestowriteashortessayentitledTheImportanceofChangebycommentingonthesaying"
最新回复
(
0
)