大学计算机软件技术基础考试技术复习题0001Word文档格式.docx
《大学计算机软件技术基础考试技术复习题0001Word文档格式.docx》由会员分享,可在线阅读,更多相关《大学计算机软件技术基础考试技术复习题0001Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
风®
9
©
0©
假设一个9阶的上三角矩阵A按列优先顺序压缩存储在一维数组B
中,其中B[0]存储矩阵中第1个元素a1,1,则B[31]中存放的元
素是a4,8。
已知一棵完全二叉树中共有768结点,则该树中共有384个叶子结点。
已知一个图的广度优先生成树如右图所示,则与此相应的广度优先遍历序列为_efcdg
前移
从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需
一个位置。
一端称为队头。
在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的
关键字比较次数为
已知一个无向图的顶点集为{a,b,c,d,e},
abdce
If(T&
&
T->
next){
return
请回答下列问题:
1)Ro和Rt行的功能是什么?
2)说明算法的功能。
1)Ro查询链表的尾结点,Rt将第一个结点链接到链表的尾部,作为新的尾结点
2)使原单链表变为循环单链表,返回循环单链表的头指针
假设两个队列共享一个循环向量空间(参见右下图)
其类型Queue2定义如下:
typedefstruct{
DateTypedata[MaxSize]intfront[2],rear[2]
}Queue2;
对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。
请对以下算法填空,实现第i个队列的入队操作。
intEnQueue(Queue2*Q,inti,DateTypex)
{//若第i个队列不满,则元素x入队列,并返回1;
否则返回0
if(ivO||i>
1)return0
if(Q
—>
rear[i]==Q—>
front[①]return0
data[②]=x—>
rear[i]=[③];
returni
1(i+1)%2(或1-i)
2Q->
rear[i]
3(Q->
rear[i]+1)%Maxsize
已知一个图如下所示,其顶点按a、b、c、d、e、f顺序存放在邻接表的顶点表
中,请画出该图的邻接表,使得按此邻接表进行深度优先遍历时得到的顶点序
acbdfe。
列为acbefd,进行广度优先遍历时得到的顶点序列为已知两个4X5的稀疏矩阵的三元组表分别如下:
1601132
—2522569
2833425
44251
请画出这两个稀疏矩阵之和的三元组表。
从空树起,依次插入关键字40,8,90,15,62,95,12,23,56,32,构造
棵二叉排序树。
(1)画出该二叉排序树
(2)画出删去该树中元素值为90的结点之后的二叉排序树。
阅读下列函数algo,并回答问题。
(1)假设整型数组A[1..8]中的元素依次为(3,8,9,1,7,4,2,6)。
执行函数调用algo(A,8)时,外层while的循环体执行多少次?
函数的返回值是多少?
(2)简述函数algo(L,n)的功能。
intalgo(intL[],intn)
inti=0,j,s=1,t=n;
while(i!
=(n+1)/2)
intx=L[s]
i=s;
j=t;
while(i&
lt;
j)
j&
L[j]&
gt;
=x)j--;
L[i]=L[j];
L[i]&
=x)i++;
L[j]=L[i];
L[i]=x;
if(i&
(n+1)/2)s=i+1;
elset=i-1;
if(i==0)return0;
elsereturnL[i];
}
(1)
(2)(3)
33题答案:
1)外循环执行4次,函数返回值为3。
最终排序结果为21346789
队和栈的主要区别是(d
链栈与顺序栈相比,比较明显的优点是
二叉树中第5层上的结点个数最多为
(2)简述算法algo的功能。
voidalgo(Queue*Q)
StackS;
InitStack(&
S);
while(!
QueueEmpty(Q))
Push(&
S,DeQueue(Q));
StackEmpty(&
S))
EnQueue(Q,Pop(&
S));
(1)87542
(2)队列倒置在数据结构中,数据的逻辑结构可以分成(
A.内部结构和外部结构
B.线性结构和非线性结构
C.紧凑结构和非紧揍结构
D.动态结构和静态结构
在以单链表为存储结构的线性表中,
数据元素之间的逻辑关系用(
A.数据元素的相邻地址表示
B.数据元素在表中的序号表示
C.指向后继元素的指针表示
D.数据元素的值表示
设p指向单链表中的一个结点,
s指向待插入的结点,则下述程序段的功能是(
s->
next
->
next;
p->
s;
data;
data
data;
t;
data
A.
结点*p与结点*s的数据域互换
B.
在p所指结点的元素之前插入元素
C.
在p所指结点的元素之后插入元素
在结点*p之前插入结点*s
栈和队列都是(
A.限制存取位置的线性结构
顺序存储的线性结构
当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关
键字小于根结点的关键字,则新结点将成为()
希尔排序的增量序列必须是(
B.随机的
A.递增的
C.递减的
D.非递减的
如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位
置,则该排序方法称为()
删除*P的直接后继结点
删除双向循环链表中*p的前驱结点(存在)应执行的语句是
p->
pre;
free(q);
栈下溢是指在
栈空
时进行出栈操作。
已知完全二叉树T的第5层只有7个结点,则该树共有
2^3+7/
11___个叶子结点。
c,则可能得到的岀栈
假设元素只能按a,b,c,d的顺序依次进栈,且得到的岀栈序列中的第一个元素为
序列为,不可能得到的岀栈序列为1)cbad,cbda,cdba2)cabd,cadb,cdab
若以邻接矩阵表示有向图,则邻接矩阵上
第i行中非零元素的个数即为顶点vi的
岀度下列函数的功能是,对以带头结点的单链表作为存储结构的两个递增有序表(表中不存在值相同的数据
元素)进行如下操作:
将所有在Lb表中存在而La表中不存在的结点插入到La中,其中La和Lb分别
为两个链表的头指针。
请在空缺处填入合适内容,使其成为一个完整的算法。
voidunion(LinkList
La,LinkList
Lb)
Lb表中存在而
La表中不存在的结点插入到La表中
LinkList
pre
=La,q;
pa=
La
pb=
Lb
free
(Lb);
while
(pa
pd)
{
if
<
pb
=
pa;
pa
else
>
//本算法的功能是将所有
data)
pb->
}
pb;
next;
q=
pb=pb->
free(q);
if(pb)
(3);
(1)
pre->
next
(2)
(3)
已知整形数组L
[1..8
]中的元素依次为(9,8,5,7,6,3,
2,1),阅读下列函数,
调用
sort(L,
8)时,对L进行的头两趟(pass分别为0和
1)处理结果。
Void
sort
并写出执行函数
(intR[],intn)
do
k=pass%2+1;
while(k<
n)
if(R[k]>
R[k+1])
K+=2
第一趟
第二趟
R[k];
R[k]
exchange=1;
pass
}while
++;
(exchange
0):
8
1):
R[k+1];
R[k+1]
1||
=1);
x;
A.n-i+1
B.i
C.i+1
D.n-i
若不带头结点的单链表的头指针为head,则该链表为空的判定条件是(
A.head==NULL
B.head->
next==NULL
C.head!
=NULL
D.head->
next==head
引起循环队列队头位置发生变化的操作是(
A.出队
B.入队
C.取队头元素
D.取队尾元素
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,
则不可能出现的出栈序列是
A.2,4,3,1,5,6
B.3,2,4,1,6,5
C.4,3,2,1,5,6
D.2,3,5,1,6,4
对关键字序列(56,23,78,92,88,67,19,34)进行增量为
3的一趟希尔排序的结果为
A.(19,23,