完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的()号位置。A.2kB.2k+1C.k/2下取整D.(k+1)/2

完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的()号位置。

A.2k

B.2k+1

C.k/2下取整

D.(k+1)/2


参考答案和解析
正确

相关考题:

已知一棵完全二叉树有56个叶子结点,从上到下、从左到右对它的结点进行编号,根结点为1号。则该完全二叉树总共结点有_____个;有_____层;第91号结点的双亲结点是_____号;第63号结点的左孩子结点是_____号。

●用顺序存储的方法将完全二叉树中的所有结点逐层存放在一维数组R[1]到R[n]中,那么,结点R[i]若有左子树,则左子树是结点(59) 。(59) A.R[2i+1]B.R[2i-1]C.R[i/2]D.R[2f]

用数组A[1···n]顺序存储完全二叉树的各结点,则当i0,且i=___________时,结点A[i]的右子女是结点A[ 2i+1],否则结点A[i]没有右子女。

用顺序存储方法将完全二叉树中所有结点存放在数组R[N]中,如果结点R[i]有右子树,则该右子树的根结点为() A、R[2i+1]B、R[2i]C、R[i/2]D、R[2i+2]

用一维数组存储二叉树时,总是以前序遍历顺序存储结点。()

假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在() A.BT[i/2]B.BT[2*i-1]C.BT[2*i]D.BT[2*i+1]

在完全二叉树的顺序存储中,若结点i有左子女,则其左子女是结点 【 】。

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

阅读以下说明和C函数,将应填入(n)处的字句写在对应栏内。【说明】已知某二叉树的非叶子结点都有两个孩子结点,现将该二叉树存储在结构数组Ht中。结点结构及数组Ht的定义如下:define MAXLEAFNUM 30struct node{char ch; /*当前结点表示的字符,对于非叶子结点,此域不用*/char *pstr; /*当前结点的编码指针,非叶子结点不用*/int parent; /*当前结点的父结点,为0时表示无父结点*/int lchild,rchild;/*当前结点的左、右孩子结点,为0时表示无对应的孩子结点*/};struct node Ht[2*MAXLEAFNUM]; /*数组元素Ht[0]不用*/该二叉树的n个叶子结点存储在下标为1~n的Ht数组元素中。例如,某二叉树如果其存储结构如下图所示,其中,与叶子结点a对应的数组元素下标为1,a的父结点存储在Ht[5],表示为Ht[1].parent=5。Ht[7].parent=0表示7号结点是树根,Ht[7].child=3、Ht[7].rchild=6分别表示7号结点的左孩子是3号结点、右孩子是6号结点。如果用0或1分别标识二叉树的左分支和右分支(如上图所示),从根结点开始到叶子结点为止,按所经过分支的次序将相应标识依次排列,可得到一个0、1序列,称之为对应叶子结点的编码。例如,上图中a,b,c,d的编码分别是100,101,0,11。函数LeafCode(Ht[],n)的功能是:求解存储在Ht中的二叉树中所有叶子结点(n个)的编码,叶子结点存储在Ht[1]~Ht[n]中,求出的编码存储区由对应的数组元素pstr域指示。函数LeafCode从叶子到根逆向求叶子结点的编码。例如,对上图中叶子结点a求编码的过程如下图所示。typedef enum Status {ERROR,OK} Status;【C函数】Status LeafCode(struct node Ht[], int n){int pc, pf; /*pc用于指出树中的结点,pf则指出pc所对应结点的父结点*/int i,start;char tstr[31] = {'\0'}; /*临时存储给定叶子结点的编码,从高下标开始存入*/for(i = 1;(1); i++){ /*对所有叶子结点求编码,i表示叶结点在HT数组中的下标*/start = 29;pc = i; pf = Ht[i].parent;while (pf !=(2)) { /*没有到达树根时,继续求编码*/if ((3).lchild == pc ) /*pc所表示的结点是其父结点的左孩子*/tstr[--start] = '0';elsetstr[--start] = '1';pc =(4); pf = Ht[pf].parent; /*pc和pf分别向根方向回退一层*/}/* end of while */Ht[i].pstr = (char *) malloc(31-start);if (!Ht[i].pstr) return ERROR;strcpy(Ht[i].pstr,(5));}/* end of for */return OK;}/* and of LeafCode */

用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组A[1]~A[n]中,结点A[i]若有左子树,则左子树的根结点是()。A.A[i/2]B.A[2i]C.A[2i-1]D.A[2i+1]

一棵有n个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组A[1.n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是()。A.A[2i](2i<=n)B.A[2i+1](2i+1<=n)C.A[i-2]D.条件不充分,无法确定

某二叉树如图所示,若进行顺序存储(即用一维数组元素存储该二叉树中的结点且通过下标反映结点间的关系,例如,对于下标为i的结点,其左孩子的下标为2i、右孩子的下标为2i+1),则该数组的大小至少为(请作答此空);若采用三叉链表存储该二叉树(各个结点包括结点的数据、父结点指针、左孩子指针、右孩子指针),则该链表的所有结点中空指针的数目为( )。A.6B.10C.12D.15

某二叉树如图所示,若进行顺序存储(即用一维数组元素存储该二叉树中的结点且通过下标反映结点间的关系,例如,对于下标为i的结点,其左孩子的下标为2i、右孩子的下标为2i+1),则该数组的大小至少为(58);若采用三叉链表存储该二叉树(各个结点包括结点的数据、父结点指针、左孩子指针、右孩子指针),则该链表的所有结点中空指针的数目为(59)。A.6B.8C.12D.14

一棵二叉树顺序编号为6的结点(树中各结点的编号与等深度的完全二叉树中对应位置上结点的编号相同),若它存在右孩子,则右孩子的编号为()。

按层次从上至下,每一层从左至右的顺序将二叉树的结点信息依次存放在数组元素BT[1]~BT[n]中,结点BT[i]如果存在右孩子,则该右孩子是()

假定一棵二叉树顺序存储在一维数组a中,但让编号为1的结点存入a[0]元素中,让编号为2的结点存入a[1]元素中,其余类推,则编号为i结点的左孩子结点对应的存储位置为(),若编号为i结点的存储位置用j表示,则其左孩子结点对应的存储位置为()。

用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组A[1]~A[n]中,结点A[i]若有左子树,则左子树的根结点是()。A、A[2i-1]B、A[2i+1]C、A[i/2]D、A[2i]

一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[n]中,则二叉树中第I个结点(I从1开始用上述方法编号)的右孩子在数组A中的位置是()A、A[2I]  (2I≤n)B、A[2I+1]  (2I+1≤n)C、A[i/2]D、条件不充分,无法确定

某完全二叉树结点按层顺序编号(根结点的编号是1),若21号结点有左孩子结点,则它的左孩子结点的编号为()

用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点()。A、 R[2i+1]B、 R[2i]C、 R[i/2]D、 R[2i-1]

填空题假定一棵二叉树顺序存储在一维数组a中,但让编号为1的结点存入a[0]元素中,让编号为2的结点存入a[1]元素中,其余类推,则编号为i结点的左孩子结点对应的存储位置为(),若编号为i结点的存储位置用j表示,则其左孩子结点对应的存储位置为()。

单选题当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组A【L.n】中时,数组中第i个结点的左孩子为( )。AA【2i】(2i=n)BA【2i+1】(2i+l=n)CA【i/2】D无法确定

填空题一棵二叉树顺序编号为6的结点(树中各结点的编号与等深度的完全二叉树中对应位置上结点的编号相同),若它存在右孩子,则右孩子的编号为()。

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

填空题按层次从上至下,每一层从左至右的顺序将二叉树的结点信息依次存放在数组元素BT[1]~BT[n]中,结点BT[i]如果存在右孩子,则该右孩子是()

单选题用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点()。A R[2i+1]B R[2i]C R[i/2]D R[2i-1]

单选题一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[n]中,则二叉树中第I个结点(I从1开始用上述方法编号)的右孩子在数组A中的位置是()AA[2I]  (2I≤n)BA[2I+1]  (2I+1≤n)CA[i/2]D条件不充分,无法确定

填空题某完全二叉树结点按层顺序编号(根结点的编号是1),若21号结点有左孩子结点,则它的左孩子结点的编号为()