试题查看

【分析解答题】

试题五(共15 分)阅读以下说明和C、语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二叉排序树。函数insert_BST (char *str)的功能是:对给定的字符序列按照ASCII 码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count 域对字符的重复次数进行计数。二叉排序树的链表结点类型定义如下:typedef structBSTNode{ charElem; /*结点的字符数据*/ intCount; /*记录当前字符在序列中重复出现的次数*/ structBSTNode *Lch,*Rch; /*结点的左、右子树指针*/}*BiTree;[函数]BiTree insert_BST(char *str){BiTree root,parent,p;char (1) ; /* 变量定义及初始化 */root =BiTree)malloc(sizeof(structBSTNode));if (!root || *s==’\0’) return NULL;root->Lch = root->Rch = NULL; root->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(structBSTNode));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;}

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

q=p- >next; (5) =q->next; /*删除出圈者对应的结点*/ free(q);public void add(asset thing) { /*为 建筑添加资产*/ things试题二(共15分) 阅读以下说明和c程序代码,将解答写在答题纸的对应栏内。 [说明] 下面是一一个待if(_ (5) >0. 5) /*判断得票数最多者的得票率*/ PRINTf (" winner:试题--(共15分) 阅读以下说明和流程图,填补流程图中的空缺(1)~ (5),将解答填入答题纸的对试题三(共15分)阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏