填空题

【流程图说明】 下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。 【算法说明】 【流程图】 将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:
typedef struct node { int data; struct node * left; struct node * right; }NODE; 【算法】 NODE * SearchSortTree(NODE * tree, int e) { if(tree!=NULL) { if(tree->data<e) (4)  ; //小于查找左子树 else if(tree->data<e) (5) ;  //大于查找左子树 else return tree; } return tree; }

【参考答案】

p=p->left (2)ptr=p->right (3)return P (4) return SearchSortT......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

填空题
【说明】以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。【C++程序】#include<iostream.h> #define pi 3.1416class container{ protected: double radius; public:container(double radius) {container::radius=radius;}virtual double surface_area()=0;virtual double velum()=0;};class cube: (1) { 定义正方体类public:cube(double radius):container(radius){};double surface_area () {return 6 * radius * radius;}double volum() {return radius * radius * radius;}};class sphere: (2) { 定义球体类public:sphere(double radius): container(radius){};double surface_area() { return (3) ;}double volum() {return pi * radius * radius * radius * 4 3;}};class cylinder: (4) { 定义圆柱体类double height;public:cylinder(double radius,double height):container(radius){container::height=height;}double surface_are a () { return 2 * pi * radius * (height+radius); }double volum () {return (5) ;}};void main(){container * p;cube obj1 (5);sphere obj2(5);cylinder obj3(5,5);p=&obj1;cout<<“正方体表面积”(<<p->surface_area()<<end1;cont<<“正方体体积”<<p->volume()<<end1;p=&obj2;cout<<“球体表面积”<<p->surface_area()<<end1;cout<<“球体体积”<<p->volume()<<end1;p=&obj3;cout<<“球体表面积”<<p->surface_area()<<end1;cout<<“球体体积”<<p->volume()<<end1;}