用顺序存储的方法,将完全二叉树中所有结点按层逐个从左到右的顺序存放在一维数组R[1..N]中,若结点R[i]有右孩子,则其右孩子是()。

A:R[2i-1] B:R[2i+1] C:R[2i] D:R[2/i]

顺序存储的方法是将完全二叉树中的所有节点逐层存放在数组R[1,…,n]中,节点R[1]若有左子女,则左子女是节点()。

A:R[2i+1] B:R[2i] C:R[i/2] D:R[2i-1]

顺序存储的方法是将完全二叉树中的所有节点逐层存放在数组R[1,…,n]中,节点R[1]若有左子女,则左子女是节点

A:R[2i+1] B:R[2i] C:R[i/2] D:R[2i-1]

[说明] 我国现行使用的公民身份证号码有两种,分别遵循两个国家标准:〖GB 11643-1989〗和〖GB 11643-1999〗。〖CB 11643-1989〗中规定的是15位身份证号码,排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。〖GB 11643 -1999〗中规定的是18位身份证号码,是特征组合码,它由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其中,校验码C由本体码按如下过程求得: (1)计算校验码和S=a18•W18+a17•W17+…+a2•w2,其中i表示18位身份证号,码每一位的序号,从右至左,最左侧为18,最右侧为1;ai表示身份证号码第i位上的号码;wi表示第i位上的权值,其值为2i-1模11的结果; (2)计算校验码值R,其值为校验和模11的结果; (3)根据下面对应关系找出校验码C:// R 0 1 2 3 4 5 6 7 8 9 10 C 1 0 X 9 8 7 6 5 4 3 2 由上述计算过程可以看出,18位身份证号码中可能包含非数字的字母X(代表数字10)。下面的应用程序基于这一算法实现了身份证号码的升位查询: 在开发过程中,显示新旧两种身份证号码的文本框(TextBox)分别名为Text1和Text2,“号码升位”按钮(CommandButton)名为Command1。 代码中使用到的字符串函数及功能说明如下: (1)Len(s):获取字符串s的长度; (2)Left(s,1):返回字符串s左端长度为1的子串; (3)Right(s,1):返回字符串s右端长度为1的子串; (4)Mid(s,p,1):返回字符串s从第P个字符开始长度为1的子串。[Visual Basic代码]’计算18位身份证号码Private Sub Commandl_Click( ) Dim code As String Dim S As Integer code = Textl. Text ’提取15位身份证号码 If Len(code) < > 15 Then MsgBox "ID 号码长度不正确,请检查!" (1) End If code = Left(code, 6) + "19" + (2) (code, 9) ’年份升位 S=0 For i = 18 To 2 Step -1 ’计算校验码和 S = S + Clnf( (3) ) * (2 ^ (i - 1) Mod11) Next i (4) ’计算校验码值 Select Case S ’确定校验码 Case 0: code = code + "1" Case 1: code = code + "0" Case 2: code = code + "X" Case Else: code = code + CStr( (5) ) End Select Text2. Text = code ’显示18位身份证号码End Sub

(1)Exit Sub(2)Right(3)Mid(code,19-i,1) (4)S=S Mod 11 (5)12-S

顺序存储的方法是将完全二叉树中的所有结点逐层存放在数组R[1,…n]中,结点R[1]若有左子女,则左子女是结点______。

A:R[2i+1] B:R[2i] C:R[i/2] D:R[2i-1]

[说明] 我国现行使用的公民身份证号码有两种,分别遵循两个国家标准:〖GB 11643-1989〗和〖GB 11643-1999〗。〖CB 11643-1989〗中规定的是15位身份证号码,排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。〖GB 11643 -1999〗中规定的是18位身份证号码,是特征组合码,它由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其中,校验码C由本体码按如下过程求得: (1)计算校验码和S=a18•W18+a17•W17+…+a2•w2,其中i表示18位身份证号,码每一位的序号,从右至左,最左侧为18,最右侧为1;ai表示身份证号码第i位上的号码;wi表示第i位上的权值,其值为2i-1模11的结果; (2)计算校验码值R,其值为校验和模11的结果; (3)根据下面对应关系找出校验码C:// R 0 1 2 3 4 5 6 7 8 9 10 C 1 0 X 9 8 7 6 5 4 3 2 由上述计算过程可以看出,18位身份证号码中可能包含非数字的字母X(代表数字10)。下面的应用程序基于这一算法实现了身份证号码的升位查询: 在开发过程中,显示新旧两种身份证号码的文本框(TextBox)分别名为Text1和Text2,“号码升位”按钮(CommandButton)名为Command1。 代码中使用到的字符串函数及功能说明如下: (1)Len(s):获取字符串s的长度; (2)Left(s,1):返回字符串s左端长度为1的子串; (3)Right(s,1):返回字符串s右端长度为1的子串; (4)Mid(s,p,1):返回字符串s从第P个字符开始长度为1的子串。[Visual Basic代码]’计算18位身份证号码Private Sub Commandl_Click( ) Dim code As String Dim S As Integer code = Textl. Text ’提取15位身份证号码 If Len(code) < > 15 Then MsgBox "ID 号码长度不正确,请检查!" (1) End If code = Left(code, 6) + "19" + (2) (code, 9) ’年份升位 S=0 For i = 18 To 2 Step -1 ’计算校验码和 S = S + Clnf( (3) ) * (2 ^ (i - 1) Mod11) Next i (4) ’计算校验码值 Select Case S ’确定校验码 Case 0: code = code + "1" Case 1: code = code + "0" Case 2: code = code + "X" Case Else: code = code + CStr( (5) ) End Select Text2. Text = code ’显示18位身份证号码End Sub

用顺序存储的方法将完全二叉树中的所有结点逐层存放在一维数组R[1]到R[n]中,那么,结点R[i]若有左子树,则左子树是结点()。

A:R[2i+1] B:R[2i-1] C:R[i/2] D:R[2f]

用数组A[1,...,n]顺序存储完全二叉树的各结点,则当i<=(n-1)/2时,结点A[i]的右子女为( )。

A:A[2i-1] B:A[2i+1] C:A[2i] D:不存在

微信扫码获取答案解析
下载APP查看答案解析