假设二叉树采用链式方式存储,t为其根结点,请选择正确的选项将函数int Depth(bintree t) 补充完整,该函数功能为求树t的高度。二叉链表定义如下:typedef struct node{datatype data;struct node *lchild,*rchild;}bintnodetypedef bintnode *bintree;函数定义如下:int depth(bintree t) {int height,leftTreeHeight,rightTreeHeight; if (t==NULL) (1) ; else { (2) ; rightTreeHeight =depth(t->rchild); if ( (3) ) height=leftTreeHeight+1; else height= rightTreeHeight +1; } return height;}
举一反三
- 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个孩子的结点个数N2;只有非空左孩子的个数NL;只有非空右孩子的结点个数NR和叶子结点个数N0。其中N2、NL、NR、N0都是全局变量,且在调用count(t)之前都置为0。请将下面程序空处补完整。 typedef struct node { int data; Struct node *lchild,*rchild; }node; int N2,NL,NR,N0; void count(node *t) { if (t->lchild!=NULL) if ( (1)__ _) N2++; else NL++; else if ( (2)_ __) NR++; else (3)_ __; if(t->lchild!=NULL) (4)__ _; if(t->rchild!=NULL) (5)__ _; }
- 二叉排序树采用二叉链表存储,结点结构为:lchild|data|rchild,指针lchild和rchild分别指向结点的左右孩子结点。令T指向根结点,则求T的左子树上最大的结点算法的核心语句是( )。 A: if (T) { s=T->lchild;if (s) { while(s->rchild) s=s->rchild; }}return s; B: if (T) { s=T->rchild;if (s) { while(s->rchild) s=s->rchild; }}return s; C: if (T) { s=T->rchild;if (s) { while(s->lchild) s=s->lchild; }}return s; D: if (T) { s=T->lchild;if (s) { while(s->lchild) s=s->lchild; }}return s;
- 函数功能: 在带头结点单链表中删除一个值为x的结点,函数返回值为头指针。请选择正确的选项链式表定义如下:typedef int datatype;typedef struct link_node{ datatype info; struct link_node *next; }node;函数实现如下:node *dele(node *head,datatype x) { node *pre= (1) ,*q; q=head->next; while( (2) ) { pre=q; q=q->next; } if(q) { pre->next=q->next; //删除q free(p); } return head; }
- 二分查找的递归实现,请选择正确的选项将函数补充完整。顺序表定义如下:typedef int datatype; /*假设数据类型为整型*/typedef struct { datatype data[100]; /*此处假设数据元素只包含一个整型的关键字域*/ int len; /*线性表长度*/ } slist; /*预定义的顺序表类型*/函数定义如下:int binsearch(slist L,datatype key,int low,int high){ int mid,k; if ( (1) ) return -1; /*检索不成功的出口条件*/ else { mid=(low+high)/2; /*二分*/ if ( (2) ) return mid; /*检索成功返回*/ if (L.data[mid]>key) return (3) ;/*递归地在前半部分检索*/ else return binsearch(L,key,mid+1,high); /*递归地在后半部分检索*/ }}
- (1)voidAA(BiTree*T){if(T){printf("%c",T->data);AA(T->lchild);AA(T->rchild);}}Writethefunctionofthealgorithmabove.(5.0分)