网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
84、┏━━┳━━┳━━━┓ 假定在二叉树的链接存储中,每个结点的结构为┃left┃data┃right ┃,其中data为 ┗━━┻━━┻━━━┛ 整型值域,left和right分别为链接左、右孩子结点的指针域,请在下面中序遍历算法中填空。 void inorder(bt); { if(bt!=NULL) { inorder(bt->left); ; inorder(bt->right);} }
参考答案和解析
inorder(bt->left);printf(bt->data);inorder(bt->right)
更多 “84、┏━━┳━━┳━━━┓ 假定在二叉树的链接存储中,每个结点的结构为┃left┃data┃right ┃,其中data为 ┗━━┻━━┻━━━┛ 整型值域,left和right分别为链接左、右孩子结点的指针域,请在下面中序遍历算法中填空。 void inorder(bt); { if(bt!=NULL) { inorder(bt->left); ; inorder(bt->right);} }” 相关考题
考题
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。void quicksort (int a[], int left, int right) {int temp;if (left<right) {hat pivot = median3 (a, left, right); //三者取中子程序int i = left, j = right-1;for(;;){while (i <j a[i] < pivot) i++;while (i <j pivot < a[j]) j--;if(i<j){temp = a[i]; a[j] = a[i]; a[i] = temp;i++; j--;}else break;}if (a[i] > pivot){temp = a[i]; a[i] = a[right]; a[right] = temp;}quicksort( (1) ); //递归排序左子区间quieksort(a,i+1 ,right); //递归排序右子区间}}void median3 (int a[], int left, int right){ int mid=(2);int k = left;if(a[mid] < a[k])k = mid;if(a[high] < a[k]) k = high; //选最小记录int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 leftif(a[mid] < a[right]){temp=a[mid]; a[mid]=a[right]; a[right]=temp;}}消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:void quicksort (int a[], int left, int right) {int temp; int i,j;(3) {int pivot = median3(a, left, right); //三者取中子程序i = left; j = righi-1;for (;; ){while (i<j a[i] < pivot)i++;while (i<j pivot <a[j]) j--;if(i <j) {temp = a[i]; a[j]; = a[i]; a[i]=temp;i++; j--;}else break;}if(a[i]>pivot){(4);a[i]=pivot;}quicksoft ((5)); //递归排序左子区间left = i+1;}}
考题
阅读下列说明和c函数代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二叉树的每个结点,且每个结点仅访问一次的过程。函数InOrder。()借助栈实现二叉树的非递归中序遍历运算。设二叉树采用二叉链表存储,结点类型定义如下:typedef struct BtNode{ElemTypedata; /*结点的数据域,ElemType的具体定义省略*/struct BtNode*ichiid,*rchild; /*结点的左、右弦子指针域*/)BtNode,*BTree;在函数InOrder()中,用栈暂存二叉树中各个结点的指针,并将栈表示为不含头结点的单向链表(简称链栈),其结点类型定义如下:typedef struct StNode{ /*链栈的结点类型*/BTree elem; /*栈中的元素是指向二叉链表结点的指针*/struct StNode*link;}S%Node;假设从栈顶到栈底的元素为en、en-1、…、e1,则不含头结点的链栈示意图如图5—5所示。【C函数】int InOrder(BTree root) /*实现二叉树的非递归中序遍历*/{BTree ptr; /*ptr用于指向二又树中的结点*/StNode*q; /*q暂存链栈中新创建或待删除的结点指针+/StNode*stacktop=NULL; /*初始化空栈的栈顶指针stacktop*/ptr=root; /*ptr指向二叉树的根结点*/while( (1 ) I I stacktop!=NULL){while(ptr!=NULL){q=(StNode*)malloc(sizeof(StNode));if(q==NULL)return-1;q-elem=ptr;(2) ;stacktop=q; /*stacktop指向新的栈顶*/ptr=(3 ) ; /*进入左子树*/}q=stacktop; (4) ; /*栈顶元素出栈*/visit(q); /*visit是访问结点的函数,其具体定义省略*/ptr= (5) ; /*进入右子树*/free(q); /*释放原栈顶元素的结点空间*/}return 0;}/*InOrder*/
考题
要设置宽度不为100%的页面容器居中,则可以在CSS定义中添加( )
A.margin-left:0;margin-right:0;B.margin-left:auto;margin-right:auto;C.margin-left:100%;margin-right:100%;D.margin-left:auto;margin-right:0;
考题
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】本程序利用非递归算法实现二叉树后序遍历。【函数】include<stdio.h>include<stdlib.h>typedef struct node{/*二叉树的结点数据结构类型*/char data;struct node *left;struct node *right;}BTREE;void SortTreelnsert(BTREE **tree, BTREE *s){if(*tree==NULL)*tree=s;elseif(s->data<(*tree)->data)SortTreelnsert((1),s);else if(s->data>=(*tree)->data)SortTreelnsert((2),s);}void TraversalTree(BTREE *tree){BTREE *stack[1 000],*p;int tag[1000],top=0;p=tree;do{while(p !=NULL){stack[++top]=p;(3);tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/}while(top>0(4))/*栈顶结点的右子树是否被后序遍历过*/{p=stack[top--];putchar(p->data);}if(top>0)/*对栈顶结点的右子树进行后序遍历*/{(5);tag[top]=1;}}while(top>0);}void PrintSortTree(BTREE *tree){if(tree !=NULL){printSortTree(tree->left);putchar(tree->data);pdntSortTree(tree->right);}}main(){BTREE *root=NULL, *node;char ch;ch=getchar();while(ch !=''){node=(BTREE*)malloc(sizeof(BTREE));node->data=ch;node->left=node->right=NULL;SortTreelnsert(root, node);ch=getchar();}PrintSortTree(root);putchar('\n');TraversalTree(root);}
考题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序实现了二叉树的结点删除算法,若树中存在要删除的结点,则删除它,否则返回。 FindNode ()函数能够在二叉树中找到给定值的结点,并返回其地址和父结点。【C++程序】template < class T >void BinSTree < T >: :Delete( const T item){TreeNode < T > * DelNodePtr, * ParNodePtr, * RepNodePtr;if(( DelNodePtr = FindNode (item,ParNodePtr)) = = NULL)(1)if(DelNodePtr→right = = NULL) //被删除结点只有一个子结点的情况RepNodePtr = DelNodePtr→left;else if( DelNodePtr→left = = NULL)(2);else // 被删除结点有两个子结点的情况{TreeNode < T >* PofRNodePtr = DelNodePtr;RepNodePtr = DelNodePtr→left;while(RepNodePtr→right ! = NULL){ //定位左子树的最右结点PofRNodePtr =RepNodePtr;RepNodePtr = RepNodePtr→right;}if(PofRNodePtr = = DelNodePtr) //左子树没有右子结点(3);else //用左子顷的最右结点替换删除的结点{(4)RepNodePtr→left = DelNodePtr→left;RepNodePtr→right = DelNodePtr→right;}}if (5)//要删除结点是要结点的情况root = RepNodePtr;else if ( DelNodePtr→data < ParNodePtr→Data)ParNodePtr→left = RepNodePtr;elseParNodePtr→right =RepNodePtr;FirstTreeNode ( DelNodePtr ) ;//释放内存资源size→;}
考题
一个具有m个结点的二叉树,其二叉链表结点(左、右孩子指针分别用left和right表示)中的空指针总数必定为(57)个。为形成中序(先序、后序)线索二叉树,现对该二叉链表所有结点进行如下操作:若结点p的左孩子指针为空,则将该左指针改为指向p在中序(先序、后序)遍历序列的前驱结点;若p的右孩子指针为空,则将该右指针改为指向p在中序(先序、后序)遍历序列的后继结点。假设指针s指向中序(先序、后序)线索二叉树中的某结点,则(58)。A.m+2B.m+1C.mD.m-1
考题
阅读下列函数说明和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);}}}
考题
阅读下列函数说明和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;
考题
阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。【流程图说明】下面的流程(如图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;}
考题
●试题一阅读下列说明和流程图,将应填入(n)的语句写在答题纸的对应栏内。【流程图说明】下面的流程(如图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-datae)(4) ;∥小于查找左子树else if(tree-datae)(5) ;∥大于查找左子树else return tree;}return tree;}
考题
Which traversal method for a binary tree does the following Pascal code illustrate? procedure traverse (p:pointer); begin if pnil then begin traverse(p ↑ .left); process(p); traverse(p ↑ .right); end end;A.preorderB.postorderC.reorderD.inorder
考题
试题三(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】函数Insert _key (*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点加入树中,返回l。提示:二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:●若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;●若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;●左、右子树本身就是二叉查找树。设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:typedef struct BiTnode{int key _value; /*结点的键值,为非负整数*/struct BiTnode *left,*right; /*结点的左、右子树指针*/}BiTnode, *BSTree;【C函数】int Insert _key( BSTree *root,int key){BiTnode *father= NULL,*p=*root, *s;while( (1)&&key!=p-key_value){/*查找键值为key的结点*/father=p;if(key p-key_value)p= (2) ; /*进入左子树*/else p= (3) ; /木进入右子树*/}if (p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/s= (BiTnode *)malloc( (4) );/*根据结点类型生成新结点*/if (!s) return -1;s-key_value= key; s-left= NULL; s-right= NULL;if( !father)(5) ; /*新结点作为二叉查找树的根结点*/else /*新结点插入二叉查找树的适当位置*/if( key father-key_value)father-left = s;elsefather-right = s;retum 1:}
考题
设指针变量p指向双向链表中节点A,指针变量s指向被插入的节点X,则在节点A的后面插入节点X的操作序列为()A.p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B.p->right=s;p->right->left=s;s->left=p;s->right=p->right;
C.s->left=p;s->right=p->right;p->right=s;p->right->left=s;
D.s->left=p;s->right=p->right;p->right->left=s;p->right=s;
考题
下面这段代码中,变量subString的结果是()。 Dim aString As String = "Left Center Right" Dim subString As String subString = Mid(aString, 13)A、"_Right"B、"Right_"C、"Right"D、"Left Center_"E、"Left Center"F、"_Left Center_"G、"Left Center R"
考题
写出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t-data=bt-data;t1=function(bt-left);t2=function(bt-right);t-left=t2;t-right=t1;}return(t);}
考题
下面选项中,()可以设置网页中某个标签的左外边距为5像素。A、margin-right:5px;B、padding-right:5px;C、margin-left:5px;D、padding-left:5px;
考题
填空题写出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t-data=bt-data;t1=function(bt-left);t2=function(bt-right);t-left=t2;t-right=t1;}return(t);}
考题
单选题下面选项中,()可以设置网页中某个标签的左外边距为5像素。A
margin-right:5px;B
padding-right:5px;C
margin-left:5px;D
padding-left:5px;
热门标签
最新试卷