第1题
A.“..”用于获取当前节点
B.“//title[@lang=’en’]”选择当前节点下包含属性lang且值为en的title元素
C.“/title[@lang=’en’]”选择根节点下面所有包含属性lang且值为en的title元素
D.“//item-info/descendant::item-name”选择所有以item-info为父节点的后代节点item-name
第2题
选择模式for-each的基本语法为: <for-each select="节点"> <value-of select="节点"> …. <for-each> 其中for-each的select属性值为XPath路径表达式,该路径表达式匹配的节点集合中有多少个节点, <for-each> 开始标记和结束标记之间的代码就会被执行多少次,但每次循环时当前节点会发生变化。
第6题
A. 双击当前的节点,然后继续绘制曲线
B. 切换到形状工具,改变节点的属性后继续用贝塞尔工具绘制
C. 右键单击节点后继续绘制
D. 直接单击下一个节点
第7题
A、[attribute::国籍=“中国”]
B、[attribute::国籍=中国]
C、[@国籍=“中国”]
D、[@国籍=中国]
第8题
A、一个节点经一个算符操作通常只生成一个子节点。
B、通常适用于一个节点的算符只有一个。
C、判断子节点是否是当前扩展节点的父节点、祖父节点等,若是,则删除。
D、扩展节点时,会生成该节点的所有后继节点。
第9题
【说明】
对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图6-15所示的最优二叉树,以及相应的结构数组Ht(如表6-14所示,其中数组元素Ht[0]不用)。
结构数组Ht的类型定义如下:
define MAXLEAFNUM 20
struct node{
char ch; /*扫当前节点表示的字符,对于非叶子节点,此域不用*/
Int weight; /*当前节点的权值*/
int parent; /*当前节点的父节点的下标,为0时表示无父节点*/
int lchild, rchild;
/*当前节点的左、右孩子节点的下标,为0时表示无对应的孩子节点*/
)Ht[2*MAXLEAFNUM];
用“0”或“广标识最优二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图6-15所示。
若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图6-15所示的叶子节点a、b、c、d的前缀编码分别是110、0、111、10。
函数void LeafCode(int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子节点,为所有的叶子节点构造前缀编码。其中,形参root为最优二叉树的根节点下标;形参n为叶子节点个数。在函数void LeafCode(int root,int n)构造过程中,将Ht[p].weight域用做被遍历节点的遍历状态标志。
函数void Decode(char *buff,int root)的功能是:将前缀编码序列翻译成叶子节点的字符序列,并输出。其中,形参root为最优二叉树的根节点下标;形参buff指向前缀编码序列。
【函数4.1】
char **HC;
void LeafCode(int root, int n)
{ /*为最优二叉树中的n个叶子节点构造前缀编码,root是树的根节点下标*/
int I,p=root,cdlen=0;
char code[20];
Hc = (char **)malloc((n+1)*sizeof(char *)); /*申请字符指针数组*/
For(i = 1;i<= p;++I)
Ht [i]. weight = 0; /*遍历最优二叉树时用做被遍历节点的状态标志* /
While (p) { /*以非递归方法遍历最优二叉树,求树中每个叶子节点的编码*/
If(Ht[p].weight == 0) { /*向左*/
Ht[p].weight = 1;
If(Ht[p].lchild != 0) {
p = Ht[p].lchild;
code[cdlen++] = '0';
}
else if(Ht[p].rchild == 0) { /*若是叶子节点,则保存其前缀编码*/
Hc[p] = (char *)malloc((cdlen+1)*sizeof(char));
(1);
strcpy (Hc [p],code);
}
}
else if(Ht[p].weight == 1) { /*向右*/
Ht [p].weight = 2;
If(Ht[p].rchild != 0) {
p = Ht [p].rchild;
code[cdlen++] ='1';
}
}
else { /*Ht[p].weight == 2,回退/
Ht [p].weight = 0;
p =(2);
(3); /*退回父节点*/
}
} / *while .结束* /
}
【函数4.2】
void Decode(char *buff,int root)
{ int pre = root,p;
while(*buff != '\0') {
p = root;
&
第10题
A、使用低估值的分支定界法,会利用启发信息对节点到达目标节点的值进行估计。
B、使用低估值的分支定界法,按照估计的总长度的代价来生成路径。
C、与普通分支定界法不同的地方是:扩展结点时,需要估算当前节点的每个子节点到目标结点的的距离,并与当前到达当前节点的路径长度相加,作为新的路径长度。
D、普通的分支定界法分支定界法比起带有低估值的更具有启发性。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!