A.⌊logp⌋=⌊log2(q)⌋
B.log2(p)=log2(q)
C.⌊log2(p)⌋+1=⌊log2(q)⌋
D.⌊log2(p)⌋=⌊log2(q)⌋+1
第1题
【说明4.1】
假设两个队列共享一个循环向量空间(如图1-2所示),其类型Queue2定义如下:
typedef struct {
DateType data [MaxSize];
int front[2],rear[2];
}Queue2;
对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。函数.EnQueue (Queue2*Q,int i,DaleType x)的功能是实现第i个队列的入队操作。
【函数4.1】
int EnQueue(Queue2 * Q, int i, DateType x)
{ /*若第i个队列不满,则元素x入队列,并返回1;否则,返回0*/
if(i<0‖i>1) return 0;
if(Q->rear[i]==Q->front[(1)]
return 0;
Q->data[(2)]=x;
Q->rear[i]=[(3)];
return 1;
}
【说明4.2】
函数BTreeEqual(BinTreeNode*T1,BinTtneNode*T2)的功能是递归法判断两棵二叉树是否相等,若相等则返回1,否则返回0。函数中参数T1和T2分别为指向这两棵二叉树根结点的指针。当两棵树的结构完全相同,并且对应结点的值也相同时,才被认为相等。
已知二叉树中的结点类型BinTreeNode定义为:
struct BinTreeNode {
char data;
BinTreeNode * left, * right;
};
其中dau为结点值域,leR和risht分别为指向左、右子女结点的指针域,
【函数4.2】
int BTreeEqual(BinTreeNode * T1, BinTreeNode * T2)
{
if(Ti == NULL && T2 == NULL)return 1 /*若两棵树均为空,则相等*/
else if((4))return 0; /*若一棵为空一棵不为空,则不等*/
else if((5)) return 1; /*若根结点值相等并且左、右子树*/
/*也相等,则两棵树相等,否则不等*/
else return 0;
}
第2题
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明4.1】
假设两个队列共享一个循环向量空间(如图1-2所示),其类型Queue2定义如下:
typedef struct{
DateType data [MaxSize];
int front[2],rear[2];
}Queue2;
对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。函数EnQueue(Queue2*Q,int i,DateType x)的功能是实现第i个队列的入队操作。
【函数4.1】
int EnQueue(Queue2*Q,int i,DateType x)
{∥若第i个队列不满,则元素x入队列,并返回1;否则,返回0
if(i<0‖i>1)return 0;
if(Q->rear[i]==Q->front[ (1) ]
return 0;
Q->data[ (2) ]=x;
Q->rear[i]=[ (3) ];
return 1;
}
【说明4.2】
函数BTreeEqual(BinTreeNode*T1,BinTreeNode*T2)的功能是递归法判断两棵二叉树是否相等,若相等则返回1,否则返回0。函数中参数T1和T2分别为指向这两棵二叉树根结点的指针。当两棵树的结构完全相同,并且对应结点的值也相同时才被认为相等。
已知二叉树中的结点类型BinTreeNode定义为:
struct BinTreeNode{
char data;
BinTreeNode*left,*right;
};
其中data为结点值域,left和right分别为指向左、右子女结点的指针域,
【函数4.2】
int BTreeEqual(BinTreeNode*T1,BinTreeNode*T2)
{
if(T1==NULL && T2==NULL)return 1;∥若两棵树均为空,则相等
else if( (4) )return 0;∥若一棵为空一棵不为空,则不等
else if( (5) )return 1;∥若根结点值相等并且左、右子树
∥也相等,则两棵树相等,否则不等
else return 0;
}
第3题
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明3.1】
假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。
例如:链表初始元素为:
(7,10,10,21,30,42,42,42,51,70)
经算法操作后变为:
(7,10,21,30,42,51,70)
【函数3.1】
void deleteklist(LinkList head)
{
LinkNode*p,*q;
p=head->next;
while(p!=head)
{
q=p->next;
while( (1) )
{
(2) ;
free(q);
q=p->next;
}
p=p->next;
}
}
【说明3.2】
已知一棵完全二叉树存放于一个一维数组T[n]中,T[n]中存放的是各结点的值。下面的程序的功能是:从T[0]开始顺序读出各结点的值,建立该二叉树的二叉链表表示。
【函数3.2】
#include<istream.h>
typedef struct node {
int data;
stuct node leftChild,rightchild;
}BintreeNode;
typedef BintreeNode*BinaryTree;
void ConstrncTree(int T[],int n,int i,BintreeNode*&ptr)
{
if(i>=n) (3) ;∥置根指针为空
else
{
ptr=-(BTNode*)malloc(sizeof(BTNode))
ptr->data=T[i];
ConstrucTree(T,n,2*i+1, (4) );
ConstrucTree(T,n, (5) ,ptr->rightchild);
}
}
main(void)
{/*根据顺序存储结构建立二叉链表*/
Binarytree bitree;int n;
printf("please enter the number of node:\n%s";n);
int*A=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;i++)scanf("%d,A+i);/*从键盘输入结点值*/
for(int i=0;i<n;i++)printf("%d",A[i]);
ConstructTree(A,n,0,bitree);
}
第4题
A.[log2p3]=[log2q]
B.log2p=log2q
C.[log2p]+1=[log2q]
D.[log2p]=[log2q]+1
第6题
A.[log2p]=[log2p]
B.log2p=log2q
C.[log2p]+1=[log2p]
D.[log2p]=[log2p]+1
第10题
A.「log2p」=「log2q」
B.log2p=log2q
C.「log2p」+1=「log2q」
D.「log2p」=「log2q」+1
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!