第6章树。
6.1 求二叉树的叶子结点数。
1)参***1,利用函数返回值记录叶子结点数。
int leafcount (bitree root)
//返回二叉树root中的叶子结点数。
if(root==null)
return 0;
if (root ->lchild==null &&root ->rchild==null)
return 1;
return leafcount (root->lchild)+ leafcount (root->rchild);
2)参***2,利用参数记录叶子结点数。
void leafcount (bitree root,int &count)
//统计二叉树root中的叶子结点数,结果放在count中。
if(root!=null)
if (root ->lchild==null &&root ->rchild==null)
count++;return;}
leafcount (root->lchild, count);
leafcount (root->rchild, count);
6.3 试编写一个算法,用于找出结点数值为x的结点的所有祖先结点的数值。假定这棵二叉树各结点的数值都不相等。要求二叉树为链式存储结构。
typedef struct qelemtype; /队列中元素类型。
status ancestor1(bitree t,bitree p,bitree arr,int &n)
//求二叉树t中结点p的祖先结点,将其地址存放到数组arr中,n记录祖先结点个数。
int pr;
sqqueue q; /队列。
qelemtype e,f;
initqueue( q); 队列初始化。
enqueue ( q, e); 根结点进队。
while (!emptyqueue(q) &
if (>rchild)
n=0;if (emptyqueue(q))
return error; /没有p结点。
e= /p结点的双亲结点。
while ( 从后向前直到根。
/ visit(>data); 根结点。
arr[n]=
n++;return ok;
//ancestor
第6章树作业
一 选择题 每小题1分 1 二叉树第i i 1 层最多有 个结点。a 2i,b 2i c 2i 1 d 2i 1 2 线索化二叉树中某结点d,没有左孩子的主要条件是 a d一 lchild null b d一 ltag 1 c d一 rchild null d d一 ltag 0 3 在下列4棵树中...
第01章作业提示
1.问答题 1 数据结构含义。10 叙述抽象数据类型的概念。5.计算下列程序段中x x 1的语句频度 for i 1 i n i for j 1 j i j for k 1 k j k x x 1 6.编写算法,求一元多项式pn x a0 a1x a2x2 a3x3 anxn的值pn x0 并确定算...
第6章作业
15.设某异步通信接口,每帧信息格式为10位,当接口每秒传送1000个字符,其波特率为多少?答 波特率为 1000 10bit s 10000bit s 19 用汇编语言和c语言编程实现一个双机通信系统,将甲机的片内ram中30h 3fh的数据块,传送到乙机片外ram中0030h 003fh中,并画...