首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

设一棵二叉树采用二叉链表表示,编写一个算法,计算二叉树各层结点个数。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“设一棵二叉树采用二叉链表表示,编写一个算法,计算二叉树各层结…”相关的问题
第1题
设一棵二叉树采用二义链表表示,编写一个算法:求二叉树的所有叶结点的值及其所在层次。

点击查看答案
第2题
以二叉链表为存储表示,试编写一个算法,用括号形式key(LT,RT)输出二叉树的各个结点。其中,key是
以二叉链表为存储表示,试编写一个算法,用括号形式key(LT,RT)输出二叉树的各个结点。其中,key是

根结点的数据,LT和RT是括号形式的左子树和右子树。要求空树不打印任何信息,一个结点的树的打印形式是x,而不应是(x,)的形式。

点击查看答案
第3题
以二叉链表存放一棵含有N个节点的二叉树,共有()个非空指针。

A.N+1

B.N-1

C.N

D.2*N

点击查看答案
第4题
一个具有m个结点的二叉树,其二叉链表结点(左、右孩子指针分别用left和right表示)中的空指针总数必

一个具有m个结点的二叉树,其二叉链表结点(左、右孩子指针分别用left和right表示)中的空指针总数必定为(57)个。为形成中序(先序、后序)线索二叉树,现对该二叉链表所有结点进行如下操作:若结点p的左孩子指针为空,则将该左指针改为指向p在中序(先序、后序)遍历序列的前驱结点;若p的右孩子指针为空,则将该右指针改为指向p在中序(先序、后序)遍历序列的后继结点。假设指针s指向中序(先序、后序)线索二叉树中的某结点,则(58)。

A.m+2

B.m+1

C.m

D.m-1

点击查看答案
第5题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 下面的程序构造一棵以二叉链

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

下面的程序构造一棵以二叉链表为存储结构的二叉树算法。

【函数】

BTCHINALR *createbt (BTCHINALR *bt )

{

BTCHINALR *q;

struct node1 *s [30];

int j,i;

char x;

printf ("i,x =" ); scanf ("%d,%c",&i,&x );

while (i!=0 && x!='$')

{ q = (BTCHINALR* malloc (sizeof (BTCHINALR )); //生成一个结点

(1);

q->1child = NULL;

q->rchild = NULL;

(2);

if((3);)

{j=i/2 //j为i的双亲结点

if(i%2==0

(4) //i为j的左孩子

else

(5) //i为j的右孩子

}

printf ("i,x =" ); scanf ("%d,%c",&i,&x ); }

return s[1]

}

点击查看答案
第6题
●设某种二叉树有如下特点;结点的子树数目不是两个,则是0个。这样的一棵二叉树中有m(m>0)个子树为0的结点时,该二叉树上的结点总数为 (30) 。(30)

A.2m+l

B.2m-1

C.2(m-1)

D.2m

点击查看答案
第7题
实现任意二叉树的后序遍历的非递归算法用栈结构,最佳方案是二叉树采用______存储结构。

A.二叉链表

B.顺序存储结构

C.三又链表

D.广义表存储结构

点击查看答案
第8题
对于任意非空二叉树,要设计出其后序遍历的非递归算法而不使用堆栈结构,最合适的方法是对该二叉树
采用(43)存储结构。

A.三叉链表

B.二叉链表

C.顺序

D.索引

点击查看答案
第9题
阅读下列函数说明和C函数,将应填入(n)处的字句写对应栏内。[说明] 二叉树的二叉链表存储结构描述

阅读下列函数说明和C函数,将应填入(n)处的字句写对应栏内。

[说明]

二叉树的二叉链表存储结构描述如下:

typedef struct BiTNode

{ datatype data;

struct BiTNode *lchild, * rchild; /*左右孩子指针*/

}BiTNode,* BiTree;

对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作:

(1) 访问该元素所指结点;

(2) 若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。

此过程不断进行,当队列为空时,二叉树的层次遍历结束。

下面的函数实现了这一遍历算法,其中Visit(datatype a)函数实现了对结点数据域的访问,数组queue[MAXNODE]用以实现队列的功能,变量front和rear分别表示当前队首元素和队尾元素在数组中的位置。

[函数]

void LevelOrder(BiTree bt) /*层次遍历二叉树bt*/

{ BiTree Queue[MAXNODE];

int front,rear;

if(bt= =NULL)return;

front=-1;

rear=0;

queue[rear]=(1);

while(front (2) ){

(3);

Visit(queue[front]->data); /*访问队首结点的数据域*/

if(queue[front]—>lchild!:NULL)

{ rear++;

queue[rear]=(4);

}

if(queue[front]->rchild! =NULL)

{ rear++;

queue[rear]=(5);

}

}

}

点击查看答案
第10题
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明] 二叉树的二叉链表存储结构描

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。

[说明]

二叉树的二叉链表存储结构描述如下:

lypedef struct BiTNode

{ datatype data;

street BiTNode *lchiht, *rchild; /*左右孩子指针*/ } BiTNode, *BiTree;

下列函数基于上述存储结构,实现了二叉树的几项基本操作:

(1) BiTree Creale(elemtype x, BiTree lbt, BiTree rbt):建立并返回生成一棵以x为根结点的数据域值,以lbt和rbt为左右子树的二叉树;

(2) BiTree InsertL(BiTree bt, elemtype x, BiTree parent):在二叉树bt中结点parent的左子树插入结点数据元素x;

(3) BiTree DeleteL(BiTree bt, BiTree parent):在二叉树bt中删除结点parent的左子树,删除成功时返回根结点指针,否则返回空指针;

(4) frceAll(BiTree p):释放二叉树全体结点空间。

[函数]

BiTree Create(elemtype x, BiTree lbt, BiTree rbt) { BiTree p;

if ((p = (BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL;

p->data=x;

p->lchild=lbt;

p->rchild=rbt;

(1);

}

BiTree InsertL(BiTree bt, elemtype x,BiTree parent)

{ BiTree p;

if (parent= =NULL) return NULL;

if ((p=(BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL;

p->data=x;

p->lchild= (2);

p->rchild= (2);

if(parent->lchild= =NULL) (3);

else{

p->lchild=(4);

parent->lchild=p;

}

return bt;

}

BiTree DeleteL(BiTree bt, BiTree parent)

{ BiTree p;

if (parent= =NULL||parent->lchild= =NULL) return NULL;

p= parent->lchild;

parent->lchild=NULL;

freeAll((5));

return bt;

点击查看答案
第11题
设一棵树的存储表示为子女-兄弟链表,编写一个算法无重复地输出树中所有的边,要求输出的形式为
(k1,k2),…,(ki,kj),…,其中ki,和kj,为树结点的标志。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改