首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处。 [说明] 二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二
阅读以下说明和C语言函数,将应填入(n)处。 [说明] 二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二
admin
2012-12-10
48
问题
阅读以下说明和C语言函数,将应填入(n)处。
[说明]
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二义排序树。
函数insert_BST(char *str)的功能是:对给定的字符序列按照ASCⅡ码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
二叉排序树的链表结点类型定义如下:
typedef struct BSTNode{
char Elem; /*结点的字符数据*/
int Count; /*记录当前字符在序列中重复出现的次数*/
struct BSTNode *Lch,*Rch; /*接点的左、右子树指针*/
}*BiTree;
[函数]
BiTree insert_BST(char *str)
{ BiTree root,parent,p;
char (1); /*变量定义及初始化 */
root=(BiTree)malloc(sizeof(struct BSTNode));
if(!root||*s==’\0’) return NULL;
root->Lch=root->Rch=NULL; foot->Count=1; root->Elem=*s++;
for(; *s!=’\0’;s++) {
(2); parent=NULL;
while (p){ /*p从树跟结点出发查找当前字符*s所在结点 */
parent = p;
if(*s==p->Elem)/*若树中已存在当前字符结点,则当前字符的计数值加1*/
{p->Count++; break;}
else /*否则根据字符*s与结点*p中字符的关系,进入*p的左子树或右子树*/
if (*s>p->Elem) p=p->Rch;
else p=p->Lch;
}/*while*/
if( (3)) {/* 若树中不存在字符值为*s的结点,则申请结点并插入树中 */
p=(BiTree)malloc(sizeof(struct BSTNode));
if(!p)return NULL;
p->Lch=p->Rch=NULL; p->Count=1; p->Elem=*s;
/*根据当前字符与其父结点字符值的大小关系,将新结点作为左子树或右子树插入*/
if(p->Elem>parent->Elem) (4)=p;
else (5)=p;
}
}/*for*/
return root;
}
选项
答案
(1) *s=str(2) p=root(3) p==NULL (4) parent->Rch(5) parent->Lch
解析
本题考查二叉排序树在链表存储结构上的运算。
函数insert_BST(char *str)的功能是对给定的字符序列str按照ASCⅡ码值大小关系创建二叉排序树,并返回指向树根结点的指针,序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
根据程序代码中对字符序列中字符的引用情况,可知需要在空(1)处定义字符指针s,其初值应为参数str的值。for语句的作用是对序列中的每个字符*s,用while循环从树根结点出发查找*s所在结点。由于while的条件p为非空指针时循环,因此此前应设置 p的初值,显然空(2)是为p没初值root,从而对每个字符*s都可以从树根出发,开始查找结点。若树中已存在当前字符*s的结点,则*s字符的计数值加1,并结束对该字符的查找过程,若树中不存在*s的结点,则会进入树的一个空子树(以p为空表示),因此空(3)处应填入“p==NULL”或“中!p”。
插入新的结点时,需要建立其与父结点的关系,在查找结点的过程中parent表示待插入结点的父结点。因此根据二叉排序树的定义,待插入元素的值大于其父结点的值,则作为右子结点插入,否则作为左子结点插入。所以,空(4)、(5)分别填入parent->Rch和parent->Lch。
转载请注明原文地址:https://www.kaotiyun.com/show/RnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
计算机采用二进制的好处不包括______。
统计报表中常包括填表说明,以指导填表者填写。填表说明中一般不包括______。
下列不是Access系统数据库对象的是______。
在Word2007编辑过程中,为防止突然断电或电脑死机等突发情况,最大程度减少损失,下列做法较好的是__________。
在Word编辑状态下,有些英文单词或汉字下面会自动加上红色或绿色的波浪型细下划线。以下叙述中,“波浪型细下划线(44)”是错误的。
在用Word软件编辑文档时,若误删除了一个数据,随后可使用______命令进行恢复。
双击某个非可执行程序的文件名将(24)。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
在PowerPoint中,下列关于自定义放映的叙述不正确的是(63)。
从①地开车到⑥地,按下图标明的道路和行驶方向,共有(4)种路线。
随机试题
正常人体内蛋白质所占比例为
消化道平滑肌的自律性主要依赖于
A、温肺止咳B、利水C、解痉D、安胎E、助阳化气生姜除发汗解表外,又能
虽然完成投资过程进入经营阶段,人们仍无法计算实际获得的收益与预期收益之间的差别,进而也无法计算获得预期收益的可能性大小。()
下列属于竣工决算控制内容的是()。
运输超限货物时,发站应将超限货物的等级在货物运单货物名称栏内注明,其中,需要限速运行(不包括仅通过桥梁、隧道、出入站线限速运行)的货物在计算运费时按运价率加()。
根据下面材料回答下列小题。2004年,某市房地产市场供需高位均衡,并呈现供略大于需的合理态势,商品房竣工面积1956.29万平方米,比去年同期增长45.3%;销售面积1876.31万平方米,比去年同期增长21.0%。供需绝对差额79.98万平方
ARM处理器在比较指令之后,如果要依据是否相等转移到指定地址L1,则以下指令错误的是()。
现有商品表(商品号,商品名,商品价格,商品描述),销售表(顾客号,商品号,销售数量,销售日期)。关于性能优化有以下做法:Ⅰ.因为很少用到商品描述属性,可以将其单独存储Ⅱ.因为经常按照商品名查询商品的销售数量,可以在销售表中添加商品名属性Ⅲ.因为经常执
Languagelearningbeginswithlistening.Individualchildrenvarygreatlyintheamountoflisteningtheydobeforetheystarts
最新回复
(
0
)