全国2004年10月高等教育自学考试
1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( )
A.逻辑结构、存储结构、机外表示 B.存储结构、逻辑结构、机外表示
C.机外表示、逻辑结构、存储结构 D.机外表示、存储结构、逻辑结构
2.若评价算法的时间复杂性,比较对数阶量级与线性阶量级,通常( )
A.对数阶量级复杂性大于线性阶量级
B.对数阶量级复杂性小于线性阶量级
C.对数阶量级复杂性等于线性阶量级
D.两者之间无法比较
3.下列关于线性表的基本操作中,属于加工型的操作是( )
A.初始化、求表长度、插入操作 B.初始化、插入、删除操作
C.求表长度、读元素、定位操作 D.定位、插入、删除操作
4.在一个单链表中,若p所指结点不是最后结点,s指向已生成的新结点,则在p之后插入s所指结点的正确操作是( )
A.s–>next=p–>next; p–>next=s; B.p–>next=s–>next; s–>next=p;
C.s–>next=p; p–>next=s; D.s–>next=p–>next; p=s;
5.若有三个字符的字符串序列执行入栈操作,则其所有可能的输出排列共有( )
A.3种 B.4种
C.5种 D.6种
6.C语言对数组元素的存放方式通常采用( )
A.按行为主的存储结构 B.按列为主的存储结构
C.按行或列为主的存储结构 D.具体存储结构无法确定
7.根据定义,树的叶子结点其度数( )
A.必大于 0 B.必等于0
C.必等于1 D.必等于2
8.二叉树若采用二叉链表结构表示,则对于n个结点的二叉树一定有( )
A.2n个指针域其中n个指针为NULL
B.2n个指针域其中n+1个指针为NULL
C.2n-1个指针域其中n个指针为NULL
D.2n-1个指针域其中n+1个指针为NULL
9.在一个无向图中,所有顶点的度数之和等于边数的( )
A.1倍 B.2倍
C.3倍 D.4倍
10.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的( )
A.先根遍历 B.中根遍历
C.后根遍历 D.层次遍历
11.采用顺序查找法,若在表头设置岗哨,则正确的查找方式通常为( )
A.从第0个元素开始往后查找该数据元素
B.从第1个元素开始往后查找该数据元素
C.从第n个元素开始往前查找该数据元素
D.从第n+1个元素开始往前查找该数据元素
12.下列查找中,效率最高的查找方法是( )
A.顺序查找 B.折半查找
C.索引顺序查找 D.分块查找
13.索引文件通常由索引表和主文件两部分构成,其中( )
A.索引表和主文件均必须是有序文件
B.索引表和主文件均可以是无序文件
C.索引表必须是有序文件
D.主文件必须是有序文件
14.直接插入排序算法,其时间复杂
性为( )
A.O(1) B.O(n)
C.O(nlog2n) D.O(n2)
15.下列排序方法中,属于稳定的排序方法是( )
A.直接插入排序法 B.快速排序法
C.冒泡排序法 D.堆排序法
16.从数据结构的观点,数据通常可分为三个层次,即:数据、数据元素和___________。
17.用程序设计语言、伪程序设计语言并混合自然语言描述的算法称为___________算法。
18.对顺序表执行插入操作,其插入算法的平均时间复杂性为___________。
19.在具有n个单元、且采用顺序存储的循环队列中,队满时共有___________个元素。
20.若front和rear分别表示循环队列Q的头指针和尾指针,m0表示该队列的最大容量,则循环队列为空的条件是___________。
21.二维数组A[10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A[0][0]的存储地址为300,则[A][10][10]的地址为___________。
22.树的遍历主要有先根遍历、后根遍历和___________三种。
23.深度为k的完全二叉树至少有___________个结点。
24.若图的邻接矩阵是一个对称矩阵,则该图一定是一个___________。
25.对于具有n个元素的数据序列,采用二叉排序树查找,其平均查找长度为___________。
26.要完全避免散列所产生的“堆积”现象,通常采用___________法。
27.ISAM其中文含义为___________方法。
28.在最好的情况下,对于具有n个元素的有序序列,若采用冒泡排序,所需的比较次数为___________次。
29.已知某二叉树如下图所示,试给出其二叉链表及顺序存储结构表示。
30.若某无向图G的邻接表如图所示,试给出以顶点V1为出发点,按广度优先搜索所产生的一棵生成树。
31.已知某二叉排序树10个结点的值依次为1~10,其结构如图所示,试标出该二叉树各结点所对应的具体值。
32.已知一组键值序列(28,47,35,42,53,60,34,22),试给出采用直接插入排序法对该组序列作升序排序的每一趟结果。
33.已知一组键值序列(3,6,8,9,2,7,4,3),试采用快速排序法对该组序列作升序排序,并给出每一趟的排序结果。
34.设某单链表中,存在多个结点其数据值均为D,试编写一算法统计该类结点的个数。
35.若二叉树存储结构采用二叉链表表示,试编写一算法,计算一棵二叉树的所有结点数。
全国2005年10月高等教育自学考试
1.若要描述数据处理的变化过程,其正确的次序应为( )
A.处理要求、基本运算和运算、算法
B.处理要求、算法、基本运算和运算
C.基本运算和运算、处理要求、算法
D.算法、处理要求、基本运算和运算
2.从运算类型角度考虑,属于引用型的运算是( )
A.插入、删除 B.删除、修改
C.查找、读取 D.查找、删除
3.若在长度为n的顺序表中插入一个结点,则其结点的移动次数( )
A.最少为0,最多为n B.最少为1,最多为n
C.最少为0,最多为n+1 D.最少为1,最多为n+1
4.在一个单链表中,若p所指结点是q所指结点的前驱结点,则在结点p、q之间插入结点s的正确操作是( )
A.s->next=q;p->next=s->next
B.p->next=q;p->next=s
C.s->next=q->next;p->next=s
D.s->next=q->next;p->next=s->next
5.若有一串数字5、6、7、8入栈,则其不可能的输出序列为( )
A.5、6、7、8 B.8、7、6、5
C.8、7、5、6 D.5、6、8、7
6.FORTRAN语言对数组元素的存放方式通常采用( )
A.按行为主的存储结构 B.按列为主的存储结构
C.按行或列为主的存储结构 D.按行和列为主的存储结构
7.树是n个结点的有穷集合,( )
A.树的结点个数可以为0,此时称该树为空树
B.树至少含有一个根结点,不能为空
C.树至少含有一个根结点和一个叶子结点
D.树至少含有一个根结点和两个叶子结点
8.深度为k的二叉树至多有( )
A.2k个叶子 B.2k-1个叶子
C.2k-1个叶子 D.2k-1-1个叶子
9.具有10个顶点的有向完全图应具有( )
A.20条弧 B.50条弧
C.90条弧 D.100条弧
10.从V1出发,对题10图按广度优先搜索遍历,则可能得到的一种顶点序列为( )
A.V1V2V3V5V4V6
B.V1V2V3V5V6V4
C.V1V5V2V3V6V4
D.V1V3V6V4V5V2
11.适用于静态的查找方法为( )
A.二分查找、二叉排序树查找
B.二分查找、索引顺序表查找
C.二叉排序树查找、索引顺序表查找
D.二叉排序树查找、散列法查找
12.采用二分查找法,若当前取得的中间位置MID的元素值小于被查找值,则表明待查元素可能在表的后半部分,下次查找的起始位置通常应( )
A.从MID/2位置开始 B.从MID位置开始
C.从MID-1位置开始 D.从MID+1位置开始
13.磁盘是一种广泛使用的外部存储设备,对磁盘的存取操作( )
A.只能用顺序方式 B.只能用随机方式
C.既能用顺序方式也能用随机方式 D.方式取决于具体的机器
14.当待排序序列中记录数较少或基本有序时,最适合的排序方法为( )
A.直接插入排序法 B.快速排序法
C.堆排序法 D.归并排序法
15.若对序列(26,90,23,53,16,34,69,39,22)进行一趟排序后所得到的结果为(22,16,23,26,53,34,69,39,90),则该排序可能使用的方法是( )
A.插入排序 B.冒泡排序
C.快速排序 D.选择排序
16.算法通常可分为程序、伪语言算法和__________三种类型。
17.时间复杂性描述量级中,若某算法达到__________量级,则该算法通常是不可计算的。
18.对顺序表执行删除操作,其删除算法的平均时间复杂性为__________。
19.
若head表示循环链表的头指针,t表示尾结点,则头指针head与尾结点t之间的关系可表示为__________。
20.我们通常把队列中允许删除的一端称为__________。
21.二维数组A[5][6]采用按列为主序的存储方式,每个元素占3个存储单元,若A[0][0]的存储地址是100,则A[4][3]的存储地址是__________。
22.树在数据结构中常采用孩子链表表示法、__________三种存储结构表示。
23.若某二叉树中度为1的结点数为4,度为2的结点数为6,则该树叶子结点数为__________。
24.对于n个顶点的生成树,其边的个数为__________ 。
25.对于具有n个元素的数据序列,若采用二分查找法,当n的值较大时其平均查找长度为__________。
26.解决散列所引起冲突的方案中,__________法是介于开散列表与闭散列表之间的一种方法。
27.多关键字文件是指同时对__________两部分都建立索引的文件组织形式。
28.排序通常可分为内部排序和外部排序,其中内部排序是指排序的整个过程中,数据全部存放在计算机的__________中。
29.对于如题29图所示二叉树,分别写出其先根遍历、中根遍历和后根遍历的结点访问序列。
30.设散列函数为H(key)=key%11,散列表长度为11(散列地址空间为0…10),在给定表(SUN,MON,TUE,WED,THU,FRI,SAT)中,取单词的第一个字母在英语字母表中的序号为键值K,构造一散列表,并用线性探测法解决有关的地址冲突。
31.试给出题31图的邻接矩阵和邻接表表示。
32.已知一组键值序列(32,44,38,65,53,42,29,57),试采用堆排序法对该组序列作升序排序,给出建立的初始堆以及第一次输出堆元素后筛选调整的堆。
33.已知一组键值序列(13,12,16,17,15,14,11),试采用二路归并排序法对该组序列作升序排序,并给出每一趟的排序结果。
34.若循环单链表长度大于1,p为指向链表中某结点的指针,试编写一算法删除p结点的前驱结点。
35.若二叉树用二叉链表表示,试编写一算法计算一棵二叉树的叶子总数(可采用递归算法描述)。
全国2007年10月
1.在数据结构中,从逻辑上可以把数据结构分成( )
A.线性结构和非线性结构 B.紧凑结构和非紧凑结构
C.动态结构和静态结构 D.内部结构和外部结构
2.for(i=0;i
for(j=0;j
A[i][j]=i*j;
上面算法的时间复杂度为( )
A.O(m2) B.O(n2)
C.O(m×n) D.O(m+n)
3.设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为( )
A.5 B.6
C.7 D.9
4.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示p指针所指向结点的
表达式是( )
A.p→llink B.p→rlink
C.p→llink→llink D.p→llink→rlink
5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是( )
A. 110 B. 108
C. 100 D. 120
6.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是( )
A.DCBA B.CDAB
C.DBAC D.DCAB
7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为( )
A.top++ B.top--
C.top不变 D.top=0
8.除根结点外,树上每个结点( )
A.可有任意多个孩子、一个双亲 B.可有任意多个孩子、任意多个双亲
C.可有一个孩子、任意多个双亲 D.只有一个孩子、一个双亲
9.题9图中树的度为( )
A.2
B.3
C.5
D.8 题9图
10.有4个顶点的无向完全图的边数为( )
A.6 B.12
C.16 D.20
11.设图的邻接矩阵为,则该图为( )
A.有向图 B.无向图
C.强连通图 D.完全图
12.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。这种方式主要适合于( )
A.静态查找表 B.动态查找表
C.静态查找表与动态查找表 D.静态查找表或动态查找表
13.用散列函数求元素在散列表中的存储位置时,可能会出现不同的关键字得到相同散列函数值的冲突现象。可用于解决上述问题的是( )
A.线性探测法 B.除留余数法
C.平方取中法 D.折叠法
14.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是( )
A.选择排序 B.插入排序
C.冒泡排序 D.快速排序
15.在排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )
A.希尔排序 B.归并排序
C.插入排序 D.选择排序
16.如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则称该类运算为__________型运算。
17.设有指针head指向不带表头结点的单链表,用next表示结点的一个链域,指针p指向与链表中结点同类型的一个新结点。现要将指针p指向的结点插入表中,使之成为第一个结点,则所需的操作为“p→next=head;”和“__________”。
18.单链表中逻辑上相邻的两个元素在物理位置上__________相邻。
19.在一个长度为n的数组中删除第i个元素(1≤i≤n)时,需要向前移动的元素的个数是__________。
20.设F、C是二叉树中的两个结点,若F是C的祖先结点,则在采用后根遍历方法遍历该二叉树时,F和C的位置关系为:F必定在C的__________。
21.若用后根遍历法遍历题21图所示的二叉树,其输出序列为__________。
题21图
22.具有n个顶点的连通图至少需有__________条边。
23.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于__________。
24.设顺序表的表长为n,且查找每个元素的概率相等,则采用顺序查找法查找表中任一元素,在查找成功时的平均查找长度为__________。
25.在索引顺序表上的查找分两个阶段:一是查找__________,二是查找块。
26.文件的基本运算有检索和修改两类。而检索又有三种方式,它们是__________存取、直接存取和按关键字存取。
27.在对一组关键字为(54,38,96,23,15,72,60,45,83)的记录采用直接选择排序法进行排序时,整个排序过程需进行__________趟才能够完成。
28.冒泡排序是一种稳定排序方法。该排序方法的时间复杂度为__________。
29.分别写出题29图中二叉树的先根、中根、后根遍历序列。
题29图
30.设要将序列(Q,H,C,Y,P,A,M,S,R)按字母升序排序,请分别画出采用堆排序方法时建立的初始堆,以及第一次输出堆顶元素后经过筛选调整的堆的完全二叉树形态。
31.如题31图所示,输入元素为A,B,C,在栈的输出端得到一个输出序列ABC,试写出在栈的输入端三个可能的输入序列。
题31图
32.已知无向图G的邻接矩阵如题32图所示。请画出该无向图,并写出按深度优先搜索时的访问序列。
题32图
33.对长度为20的有序表进行二分查找,试画出它的一棵判定树。
34.下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。循环链表的结构如题34图所示:
题34图
struct node{ int info;struct node *link; }
int Delete (struct node *head, int x)
{ struct node *p, *q; /*p:当前处理的结点;q:p的前驱结点*/
if (! head ) return (0);
if (head→link ==head)
{ if (head→info==x)
{ free (head);head=NULL;return (x)
}
return (0);
}
p=head; q=head;
while (q→link!=head) q=(1) ;
while (p→link!=head)
{ if (p→info==x)
{ (2) ;
if (p==head) head=(3) ;
free (p);return (x);
}
else { q=p ;(4) ;}
}
return (0);
}
35.设以二叉链表为二叉树的存储结构,结点的结构如下:
lchild data rchild
其中data域为整数,试设
计一个算法void change(bitreptr r): 若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。
全国2010年10月高等教育自学考试
1.下列描述中正确的是( )
A.数据元素是数据的最小单位
B.数据结构是具有结构的数据对象
C.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合
D.算法和程序原则上没有区别,在讨论数据结构时两者是通用的
2.归并排序的时间复杂度是( )
A.O(n2) B.O(nlog2n)
C.O(n) D.O(log2n)
3.二分查找的时间复杂度是( )
A.O(n2) B.O(nlog2n)
C.O(n) D.O(log2n)
4.顺序存储的表中有90000个元素,已按关键字值升序排列,假设对每个元素进行查找的概率相同,且每个元素的关键字值皆不相同,用顺序查找法查找时,需平均比较的次数为( )
A.25000 B.30000
C.45000 D.90000
5.散列文件是一种( )
A.顺序文件 B.索引文件
C.链接文件 D.计算寻址文件
6.两个矩阵A:m×n,B:n×p相乘,其时间复杂度为( )
A.O(n) B.O(mnp)
C.O(n2) D.O(mp)
7.常用于函数调用的数据结构是( )
A.栈 B.队列
C.链表 D.数组
8.二维数组A[n][m]以列优先顺序存储,数组A中每个元素占用1个字节,A[1][1]为首元素,其地址为0,则元素A[i][j]的地址为( )
A.(i-1)×m+(j-1) B.(j-1)×n+(i-1)
C.(j-1)×n+i D.j×n+i
9.图的广度优先搜索使用的数据结构是( )
A.队列 B.树
C.栈 D.集合
10.序列(21,19,37,5,2)经冒泡排序法由小到大排序,在第一次执行交换后所得结果为( )
A.(19,21,37,5,2) B.(21,19,5,37,2)
C.(21,19,37,2,5) D.(2,21,19,37,5)
11.数据在计算机存储器内表示时,根据结点的关键字直接计算出该结点的存储地址,这种方法称为( )
A.索引存储方法 B.顺序存储方法
C.链式存储方法 D.散列存储方法
12.在单链表中,存储每个结点有两个域,一个是数据域,另一个是指针域,指针域指向该结点的( )
A.直接前趋 B.直接后继
C.开始结点 D.终端结点
13.在已知头指针的单链表中,要在其尾部插入一新结点,其算法所需的时间复杂度为( )
A.O(1) B.O(log2n)
C.O(n) D.O(n2)
14.在链队列中执行入队操作,( )
A.需判别队是否空 B.需判别队是否满
C.限制在链表头p进行 D.限制在链表尾p进行
15.一整数序列26,59,77,31,51,11,19,42,以二路归并排序从小到大排序,第一阶段的归并结果为( )
A.31,51,11,42,26,77,59,19 B.26,59,31,77,11,51,19,42
C.11,19,26,31,42,59,51,77 D.26,11,19,31,51,59,77,42
16.下列程序段的时间复杂度为_______。
i=0;s=0;
while(s
{i++;
s=s+i;
}
17.数据的存储结构被分为顺序存储结构、_______、散列存储结构和索引存储结构4种。
18.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动_______个元素。
19.在单链表中,插入一个新结点需修改_______个指针。
20.在队列结构中,允许插入的一端称为_______。
21.稀疏矩阵采用的压缩存储方法是_______。
22.向一个栈顶指针为top的链栈中插入一个新结点*p时,应执行p->next=top和_______操作。
23.有m个叶结点的哈夫曼树所具有的结点数为_______。
24.在一棵具有n个结点的完全二叉树中,从树根起,自上而下、自左至右地给所有结点编号。设根结点编号为1。若编号为i的结点有右孩子,那么其右孩子的编号为_______。
25.在一棵树中,_______结点没有前驱结点。
26.一个具有n个顶点的有向完全图的弧数是_______。
27.n个顶点的无向图G用邻接矩阵A[n][n]存储,其中第i列的所有元素之和等于顶点Vi的_______。
28.选择排序的平均时间复杂度为_______。
29.在栈的输入端元素的输入顺序为1,2,3,4,5,6,进栈过程中可以退栈,则退栈时能否排成序列3,2,5,6,4,1和1,5,4,6,2,3,若能,写出进栈、退栈过程,若不能,简述理由。(用push(x)表示x进栈,pop(x)表示x退栈)
30.已知一棵二叉树的中根遍历序列为CBEDFAGH,后根遍历序列为CEFDBHGA,画出该二叉树。
31.给定表(15,11,8,20,14,13),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树,并判断该二叉排序树是否为平衡二叉排序树,若为非平衡二叉排序树,将它调整为平衡二叉排序树。
32.如题32图所示无向图,(1)写出其邻接矩阵;(2)写出三种以顶点A为起点的深度优先搜索顶点序列。
题32图
33.用冒泡排序法对数据序列(49,38,65,97,76,134,27,49)进行排序,写出排序过程。并说明冒泡排序是否为稳定排序。
34.编
写计算二叉树中叶子结点数目的算法。
35.开散列表的类型定义如下:
typedef struct tagnode
{keytype key;
struct tagnode*next;
}*pointer,node;
typedef pointer openhash[n];
试写出开散列表上的查找算法。
全国2011年1月高等教育自学考试
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.在顺序表中查找第i个元素,时间效率最高的算法的时间复杂度为( )
A.O(1) B.O()
C.O(log2n) D.O(n)
2.树形结构中,度为0的结点称为( )
A.树根 B.叶子
C.路径 D.二叉树
3.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={,,,,,,,,,},则图G的拓扑序列是( )
A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7
C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7
4.有关图中路径的定义,表述正确的是( )
A.路径是顶点和相邻顶点偶对构成的边所形成的序列
B.路径是不同顶点所形成的序列
C.路径是不同边所形成的序列
D.路径是不同顶点和不同边所形成的集合
5.串的长度是指( )
A.串中所含不同字母的个数 B.串中所含字符的个数
C.串中所含不同字符的个数 D.串中所含非空格字符的个数
6.组成数据的基本单位是( )
A.数据项 B.数据类型
C.数据元素 D.数据变量
7.程序段 i=n;x=0;
do{x=x+5*i;i--;}while (i>0);
的时间复杂度为( )
A.O(1) B.O(n)
C.O(n2) D.O(n3)
8.与串的逻辑结构不同的数据结构是( )
A.线性表 B.栈
C.队列 D.树
9.二叉树的第i(i≥1)层上所拥有的结点个数最多为( )
A.2i B.2i
C.2i-1 D.2i-1
10.设单链表中指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )
A.p->next=p->next->next B.p=p->next
C.p=p->next->next D.p->next=p
11.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( )
A.堆排序 B.冒泡排序
C.直接插入排序 D.快速排序
12.设字符串S1=″ABCDEFG″,S2=″PQRST″,则运算
S=CONCAT(SUBSTR(S1,2,LENGTH(S2)),SUBSTR(S1,LENGTH(S2),2))
后S的结果为( )
A.″BCQR″ B.″BCDEF″
C.″BCDEFG″ D.″BCDEFEF″
13.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并且A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则使其平衡的调整方法为( )
A.LL型 B.LR型
C.RL型 D.RR型
14.如果结点A有3个兄弟结点,而且B为A的双亲,则B的度为( )
A.1 B.3
C.4 D.5
15.数据表A中每个元素距其最终位置较近,则最省时间的排序
算法是( )
A.堆排序 B.插入排序
C.直接选择排序 D.快速排序
二、填空题(本大题共13小题,每小题2分,共26分)
请在每小题的空格中填上正确答案。错填、不填均无分。
16.下列程序段的时间复杂度为___________。
i=1;
while(i
i=i*2;
17.向一个长度为n的顺序表中第i(1≤i≤n)个元素之前插入一个元素时,需向后移动___________个元素。
18.在循环双链表中,删除最后一个结点,其算法的时间复杂度为___________。
19.队列的插入操作在队列的___________部分进行。
20.一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素为___________。
21.一个10阶对称矩阵A,采用行优先顺序压缩存储下三角,a00为第一个元素,其存储地址为1,每个元素占有1个存储地址空间,则a85的地址为___________。
22.设字符串S=″I□AM□A□STUDENT″(其中□表示空格字符),则S的长度为___________。
23.在树形结构中,没有后继的结点是___________结点。
24.一棵深度为n(n>1)的满二叉树中共有___________个结点。
25.在无向图中,如果从顶点v到顶点v′有路径,则称v和v′是___________。
26.无向完全图G采用___________存储结构较省空间。
27.在顺序查找、二分查找、索引查找和散列查找四种查找方法中,平均查找长度与元素个数没有关系的查找方法是___________。
28.快速排序最好情况下的时间复杂度为___________。
三、应用题(本大题共5小题,每小题6分,共30分)
29.稀疏矩阵A如下,写出矩阵A的三元组表及矩阵A的转置矩阵的三元组表。
30.一棵二叉树的前根遍历序列为ABCDEFG,中根遍历序列为CBDAEGF,试构造出该二叉树。
31.下述矩阵表示一个无向连通网,试画出它所表示的连通网及该连通网的最小生成树。
32.给定表(80,90,50,70,75,60,40,100),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树。
33.试写出一组键值(46,58,15,45,90,18,10,62)应用直接插入排序算法从小到大排序后各趟的结果。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.试分别写出二叉树的先根遍历和中根遍历的递归算法。
35.试编写以单链表为存储结构实现直接选择排序的算法。
全国高等教育自学考试
数据结构导论标准预测试卷(一)
第一部分选择题
一、 单项选择题(在每小题的四个备选答案中有一个正确答案。请将其序号写在题干后的括号内。每小题l分,共14分)
1.数据的基本单位是 ( )
A.数据结构 B.数据元素
C.数据项 D.文件
2.在一个单链表中,若要删除p指针所指向节
点的后继节点,则执行 ( )
3.下面关于线性表的叙述中,错误的是 ( )
A.线性表采用顺序存储,必须占用一片连续的存储单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链接存储,不必占用一片连续的存储单元
D.线性表采用链接存储,便于插入和删除操作
4.向顺序栈中压入元素时,是 ( )
A.先移动栈顶指针,后存人元素
B.先存人元素,后移动栈顶指针
C.无所谓谁先谁后
D.同时进行
5.在一个顺序存储的循环队列中,队首指针指向队首元素的 ( )
A.前一个位置 B.后一个位置
C.队首元素位置 D.任意位置
6.在完全二叉树中,若一个结点是叶子结点,则它没有 ( )
A.父结点 B.兄弟结点
C.左子结点和右子结点 D.左子结点、右子结点和兄弟结点
8.由3个结点可以构造出多少种不同的二叉树 ( )
A.2 B.3
C.4 D.5
9.下面关于图的论述中正确的是 ( )
A.邻接表法只能用于有向图的存储,而相邻矩阵法对于有向图和无向图的存储都适用
B.任何有向图网络拓扑排序的结果是唯一的
C.有回路的图不能进行拓扑排序
D.无向连通网络的最小生成树是唯一的
10.设图G有n个顶点和e条边,进行广度优先搜索的时间复杂度至多为 ( )
11.查找表的逻辑结构是 ( )
A.线性结构 B.树形结构
C.图状结构 D.集合
12.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用____查
找方法。 ( )
A.分块 B.顺序
C.二分 D.以上皆可
13.顺序文件修改操作困难,采用______的方法可降低所需代价。 ( )
A.附加文件 B.按关键字值排序
C.按记录输入先后排序D.快速存储
14.从未排序序列中挑选元素,并将其依次放入已排序序列初始时为空的一端,这种排序方
法为 ( )
A.插入排序 B.归并排序
C.选择排序 D.连续存储
第二部分非选择题
二、判断题(每小题2分,共20分。正确的在括号内打“对”。错误的打“错”。)
1.数据的逻辑结构是各数据元素之间的逻辑关系,是用户按使用需要而建立的。 ( )
2.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此
是属于同一数据对象。 ( )
3.数组是一组相继的内存单元。 ( )
4.栈和队列都是顺序存储的线性结构。 ( )
5.二叉树是树的特殊情形。 ( )
6.用一维数组存储二叉树时,总是以前序遍历存储结点。 ( )
7.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储
空间大小只与
图中结点个数有关,而与图的边数无关。 ( )
8.解决冲突的方法有“拉链法”和构造后继散列地址序列。 ( )
9.存放在磁带、磁盘上的文件,既可能是顺序文件也可以索引结构或其它结构类型的文件。
( )
10.对于n个记录的集合进行快速排序,所需要的附加空间数0(n)。 ( )
三、填空题(每小题2分。共30分)
1.一个存储结构主要包括_______、_____和附加设施。
2.在一个单链表中,在指针P所指向的结点之后插入指针s所指向的结点时,应执行“s一>next=______:”和 “P一>next=_______:”的操作。
3.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取
线性表中的元素时,应采用_________存储结构。
4._______可以作为实现递归函数调用的一种数据结构。
5.对带头结点的链队列lq,判定队列中只有一个数据元素的条件是lq→______→
__==lq→_____。
7.树与二叉树之间最主要的差别是:二叉树中各结点的子树要区分为______和_____。
8.用于描述分类过程的二叉树称为______。
9.在具有n个顶点的图的生成树中,含有________条边。
10.对n个顶点,e条边的无向图,其邻接表表示中,需要_______ 个结点。
11.在散列存储中,装填因子a的值越大,存取元素时发生冲突的可能性_____,a的值
越小,存取元素时发生冲突的可能性就_____。
12.一个索引顺序表由两部分组成:一个______和一个_____。
13.文件的基本运算有两类:_____和______。
14.对n个记录的集合进行冒泡排序,其最坏情况下所需的时间复杂度是______。
15.按照排序过程涉及的存储设备的不同,排序可分为_____和______。
四、应用题(每小题6分,共24分)
1.已知一棵二叉树的前根遍历结果为ABCDEFGHIJ,中根遍历的结果为CBEDAHGUF,试
画出该二叉树。
2.无向图G如图所示
试给出(1)该图的邻接矩阵
(2)从A出发的“深度优先”遍历序列
3.如图所示的二叉排序树中
(1)删除关键码15;(2)插入关键码20,分别画出得到的=叉排序树
4.设有一个栈,元素进栈的次序为A,B,C,D,E,写出下列出栈序列的操作序列。
(1)C,B,A,D,E
(2)A,C,B,E,D
其中1为进栈操作,0为出栈操作。
五、设计题(每小题6分,共12分)
1.一个带头指针的单链表,写出在其值为X的结点之后插入m个结点的算法。
2.以二叉链表为存储结构,写出求二叉树中叶子数的算法。
全国2004年10月高等教育自学考试
1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( )
A.逻辑结构、存储结构、机外表示 B.存储结构、逻辑结构、机外表示
C.机外表示、逻辑结构、存储结构 D.机外表示、存储结构、逻辑结构
2.若评价算法的时间复杂性,比较对数阶量级与线性阶量级,通常( )
A.对数阶量级复杂性大于线性阶量级
B.对数阶量级复杂性小于线性阶量级
C.对数阶量级复杂性等于线性阶量级
D.两者之间无法比较
3.下列关于线性表的基本操作中,属于加工型的操作是( )
A.初始化、求表长度、插入操作 B.初始化、插入、删除操作
C.求表长度、读元素、定位操作 D.定位、插入、删除操作
4.在一个单链表中,若p所指结点不是最后结点,s指向已生成的新结点,则在p之后插入s所指结点的正确操作是( )
A.s–>next=p–>next; p–>next=s; B.p–>next=s–>next; s–>next=p;
C.s–>next=p; p–>next=s; D.s–>next=p–>next; p=s;
5.若有三个字符的字符串序列执行入栈操作,则其所有可能的输出排列共有( )
A.3种 B.4种
C.5种 D.6种
6.C语言对数组元素的存放方式通常采用( )
A.按行为主的存储结构 B.按列为主的存储结构
C.按行或列为主的存储结构 D.具体存储结构无法确定
7.根据定义,树的叶子结点其度数( )
A.必大于 0 B.必等于0
C.必等于1 D.必等于2
8.二叉树若采用二叉链表结构表示,则对于n个结点的二叉树一定有( )
A.2n个指针域其中n个指针为NULL
B.2n个指针域其中n+1个指针为NULL
C.2n-1个指针域其中n个指针为NULL
D.2n-1个指针域其中n+1个指针为NULL
9.在一个无向图中,所有顶点的度数之和等于边数的( )
A.1倍 B.2倍
C.3倍 D.4倍
10.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的( )
A.先根遍历 B.中根遍历
C.后根遍历 D.层次遍历
11.采用顺序查找法,若在表头设置岗哨,则正确的查找方式通常为( )
A.从第0个元素开始往后查找该数据元素
B.从第1个元素开始往后查找该数据元素
C.从第n个元素开始往前查找该数据元素
D.从第n+1个元素开始往前查找该数据元素
12.下列查找中,效率最高的查找方法是( )
A.顺序查找 B.折半查找
C.索引顺序查找 D.分块查找
13.索引文件通常由索引表和主文件两部分构成,其中( )
A.索引表和主文件均必须是有序文件
B.索引表和主文件均可以是无序文件
C.索引表必须是有序文件
D.主文件必须是有序文件
14.直接插入排序算法,其时间复杂
性为( )
A.O(1) B.O(n)
C.O(nlog2n) D.O(n2)
15.下列排序方法中,属于稳定的排序方法是( )
A.直接插入排序法 B.快速排序法
C.冒泡排序法 D.堆排序法
16.从数据结构的观点,数据通常可分为三个层次,即:数据、数据元素和___________。
17.用程序设计语言、伪程序设计语言并混合自然语言描述的算法称为___________算法。
18.对顺序表执行插入操作,其插入算法的平均时间复杂性为___________。
19.在具有n个单元、且采用顺序存储的循环队列中,队满时共有___________个元素。
20.若front和rear分别表示循环队列Q的头指针和尾指针,m0表示该队列的最大容量,则循环队列为空的条件是___________。
21.二维数组A[10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A[0][0]的存储地址为300,则[A][10][10]的地址为___________。
22.树的遍历主要有先根遍历、后根遍历和___________三种。
23.深度为k的完全二叉树至少有___________个结点。
24.若图的邻接矩阵是一个对称矩阵,则该图一定是一个___________。
25.对于具有n个元素的数据序列,采用二叉排序树查找,其平均查找长度为___________。
26.要完全避免散列所产生的“堆积”现象,通常采用___________法。
27.ISAM其中文含义为___________方法。
28.在最好的情况下,对于具有n个元素的有序序列,若采用冒泡排序,所需的比较次数为___________次。
29.已知某二叉树如下图所示,试给出其二叉链表及顺序存储结构表示。
30.若某无向图G的邻接表如图所示,试给出以顶点V1为出发点,按广度优先搜索所产生的一棵生成树。
31.已知某二叉排序树10个结点的值依次为1~10,其结构如图所示,试标出该二叉树各结点所对应的具体值。
32.已知一组键值序列(28,47,35,42,53,60,34,22),试给出采用直接插入排序法对该组序列作升序排序的每一趟结果。
33.已知一组键值序列(3,6,8,9,2,7,4,3),试采用快速排序法对该组序列作升序排序,并给出每一趟的排序结果。
34.设某单链表中,存在多个结点其数据值均为D,试编写一算法统计该类结点的个数。
35.若二叉树存储结构采用二叉链表表示,试编写一算法,计算一棵二叉树的所有结点数。
全国2005年10月高等教育自学考试
1.若要描述数据处理的变化过程,其正确的次序应为( )
A.处理要求、基本运算和运算、算法
B.处理要求、算法、基本运算和运算
C.基本运算和运算、处理要求、算法
D.算法、处理要求、基本运算和运算
2.从运算类型角度考虑,属于引用型的运算是( )
A.插入、删除 B.删除、修改
C.查找、读取 D.查找、删除
3.若在长度为n的顺序表中插入一个结点,则其结点的移动次数( )
A.最少为0,最多为n B.最少为1,最多为n
C.最少为0,最多为n+1 D.最少为1,最多为n+1
4.在一个单链表中,若p所指结点是q所指结点的前驱结点,则在结点p、q之间插入结点s的正确操作是( )
A.s->next=q;p->next=s->next
B.p->next=q;p->next=s
C.s->next=q->next;p->next=s
D.s->next=q->next;p->next=s->next
5.若有一串数字5、6、7、8入栈,则其不可能的输出序列为( )
A.5、6、7、8 B.8、7、6、5
C.8、7、5、6 D.5、6、8、7
6.FORTRAN语言对数组元素的存放方式通常采用( )
A.按行为主的存储结构 B.按列为主的存储结构
C.按行或列为主的存储结构 D.按行和列为主的存储结构
7.树是n个结点的有穷集合,( )
A.树的结点个数可以为0,此时称该树为空树
B.树至少含有一个根结点,不能为空
C.树至少含有一个根结点和一个叶子结点
D.树至少含有一个根结点和两个叶子结点
8.深度为k的二叉树至多有( )
A.2k个叶子 B.2k-1个叶子
C.2k-1个叶子 D.2k-1-1个叶子
9.具有10个顶点的有向完全图应具有( )
A.20条弧 B.50条弧
C.90条弧 D.100条弧
10.从V1出发,对题10图按广度优先搜索遍历,则可能得到的一种顶点序列为( )
A.V1V2V3V5V4V6
B.V1V2V3V5V6V4
C.V1V5V2V3V6V4
D.V1V3V6V4V5V2
11.适用于静态的查找方法为( )
A.二分查找、二叉排序树查找
B.二分查找、索引顺序表查找
C.二叉排序树查找、索引顺序表查找
D.二叉排序树查找、散列法查找
12.采用二分查找法,若当前取得的中间位置MID的元素值小于被查找值,则表明待查元素可能在表的后半部分,下次查找的起始位置通常应( )
A.从MID/2位置开始 B.从MID位置开始
C.从MID-1位置开始 D.从MID+1位置开始
13.磁盘是一种广泛使用的外部存储设备,对磁盘的存取操作( )
A.只能用顺序方式 B.只能用随机方式
C.既能用顺序方式也能用随机方式 D.方式取决于具体的机器
14.当待排序序列中记录数较少或基本有序时,最适合的排序方法为( )
A.直接插入排序法 B.快速排序法
C.堆排序法 D.归并排序法
15.若对序列(26,90,23,53,16,34,69,39,22)进行一趟排序后所得到的结果为(22,16,23,26,53,34,69,39,90),则该排序可能使用的方法是( )
A.插入排序 B.冒泡排序
C.快速排序 D.选择排序
16.算法通常可分为程序、伪语言算法和__________三种类型。
17.时间复杂性描述量级中,若某算法达到__________量级,则该算法通常是不可计算的。
18.对顺序表执行删除操作,其删除算法的平均时间复杂性为__________。
19.
若head表示循环链表的头指针,t表示尾结点,则头指针head与尾结点t之间的关系可表示为__________。
20.我们通常把队列中允许删除的一端称为__________。
21.二维数组A[5][6]采用按列为主序的存储方式,每个元素占3个存储单元,若A[0][0]的存储地址是100,则A[4][3]的存储地址是__________。
22.树在数据结构中常采用孩子链表表示法、__________三种存储结构表示。
23.若某二叉树中度为1的结点数为4,度为2的结点数为6,则该树叶子结点数为__________。
24.对于n个顶点的生成树,其边的个数为__________ 。
25.对于具有n个元素的数据序列,若采用二分查找法,当n的值较大时其平均查找长度为__________。
26.解决散列所引起冲突的方案中,__________法是介于开散列表与闭散列表之间的一种方法。
27.多关键字文件是指同时对__________两部分都建立索引的文件组织形式。
28.排序通常可分为内部排序和外部排序,其中内部排序是指排序的整个过程中,数据全部存放在计算机的__________中。
29.对于如题29图所示二叉树,分别写出其先根遍历、中根遍历和后根遍历的结点访问序列。
30.设散列函数为H(key)=key%11,散列表长度为11(散列地址空间为0…10),在给定表(SUN,MON,TUE,WED,THU,FRI,SAT)中,取单词的第一个字母在英语字母表中的序号为键值K,构造一散列表,并用线性探测法解决有关的地址冲突。
31.试给出题31图的邻接矩阵和邻接表表示。
32.已知一组键值序列(32,44,38,65,53,42,29,57),试采用堆排序法对该组序列作升序排序,给出建立的初始堆以及第一次输出堆元素后筛选调整的堆。
33.已知一组键值序列(13,12,16,17,15,14,11),试采用二路归并排序法对该组序列作升序排序,并给出每一趟的排序结果。
34.若循环单链表长度大于1,p为指向链表中某结点的指针,试编写一算法删除p结点的前驱结点。
35.若二叉树用二叉链表表示,试编写一算法计算一棵二叉树的叶子总数(可采用递归算法描述)。
全国2007年10月
1.在数据结构中,从逻辑上可以把数据结构分成( )
A.线性结构和非线性结构 B.紧凑结构和非紧凑结构
C.动态结构和静态结构 D.内部结构和外部结构
2.for(i=0;i
for(j=0;j
A[i][j]=i*j;
上面算法的时间复杂度为( )
A.O(m2) B.O(n2)
C.O(m×n) D.O(m+n)
3.设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为( )
A.5 B.6
C.7 D.9
4.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示p指针所指向结点的
表达式是( )
A.p→llink B.p→rlink
C.p→llink→llink D.p→llink→rlink
5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是( )
A. 110 B. 108
C. 100 D. 120
6.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是( )
A.DCBA B.CDAB
C.DBAC D.DCAB
7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为( )
A.top++ B.top--
C.top不变 D.top=0
8.除根结点外,树上每个结点( )
A.可有任意多个孩子、一个双亲 B.可有任意多个孩子、任意多个双亲
C.可有一个孩子、任意多个双亲 D.只有一个孩子、一个双亲
9.题9图中树的度为( )
A.2
B.3
C.5
D.8 题9图
10.有4个顶点的无向完全图的边数为( )
A.6 B.12
C.16 D.20
11.设图的邻接矩阵为,则该图为( )
A.有向图 B.无向图
C.强连通图 D.完全图
12.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。这种方式主要适合于( )
A.静态查找表 B.动态查找表
C.静态查找表与动态查找表 D.静态查找表或动态查找表
13.用散列函数求元素在散列表中的存储位置时,可能会出现不同的关键字得到相同散列函数值的冲突现象。可用于解决上述问题的是( )
A.线性探测法 B.除留余数法
C.平方取中法 D.折叠法
14.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是( )
A.选择排序 B.插入排序
C.冒泡排序 D.快速排序
15.在排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )
A.希尔排序 B.归并排序
C.插入排序 D.选择排序
16.如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则称该类运算为__________型运算。
17.设有指针head指向不带表头结点的单链表,用next表示结点的一个链域,指针p指向与链表中结点同类型的一个新结点。现要将指针p指向的结点插入表中,使之成为第一个结点,则所需的操作为“p→next=head;”和“__________”。
18.单链表中逻辑上相邻的两个元素在物理位置上__________相邻。
19.在一个长度为n的数组中删除第i个元素(1≤i≤n)时,需要向前移动的元素的个数是__________。
20.设F、C是二叉树中的两个结点,若F是C的祖先结点,则在采用后根遍历方法遍历该二叉树时,F和C的位置关系为:F必定在C的__________。
21.若用后根遍历法遍历题21图所示的二叉树,其输出序列为__________。
题21图
22.具有n个顶点的连通图至少需有__________条边。
23.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于__________。
24.设顺序表的表长为n,且查找每个元素的概率相等,则采用顺序查找法查找表中任一元素,在查找成功时的平均查找长度为__________。
25.在索引顺序表上的查找分两个阶段:一是查找__________,二是查找块。
26.文件的基本运算有检索和修改两类。而检索又有三种方式,它们是__________存取、直接存取和按关键字存取。
27.在对一组关键字为(54,38,96,23,15,72,60,45,83)的记录采用直接选择排序法进行排序时,整个排序过程需进行__________趟才能够完成。
28.冒泡排序是一种稳定排序方法。该排序方法的时间复杂度为__________。
29.分别写出题29图中二叉树的先根、中根、后根遍历序列。
题29图
30.设要将序列(Q,H,C,Y,P,A,M,S,R)按字母升序排序,请分别画出采用堆排序方法时建立的初始堆,以及第一次输出堆顶元素后经过筛选调整的堆的完全二叉树形态。
31.如题31图所示,输入元素为A,B,C,在栈的输出端得到一个输出序列ABC,试写出在栈的输入端三个可能的输入序列。
题31图
32.已知无向图G的邻接矩阵如题32图所示。请画出该无向图,并写出按深度优先搜索时的访问序列。
题32图
33.对长度为20的有序表进行二分查找,试画出它的一棵判定树。
34.下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。循环链表的结构如题34图所示:
题34图
struct node{ int info;struct node *link; }
int Delete (struct node *head, int x)
{ struct node *p, *q; /*p:当前处理的结点;q:p的前驱结点*/
if (! head ) return (0);
if (head→link ==head)
{ if (head→info==x)
{ free (head);head=NULL;return (x)
}
return (0);
}
p=head; q=head;
while (q→link!=head) q=(1) ;
while (p→link!=head)
{ if (p→info==x)
{ (2) ;
if (p==head) head=(3) ;
free (p);return (x);
}
else { q=p ;(4) ;}
}
return (0);
}
35.设以二叉链表为二叉树的存储结构,结点的结构如下:
lchild data rchild
其中data域为整数,试设
计一个算法void change(bitreptr r): 若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。
全国2010年10月高等教育自学考试
1.下列描述中正确的是( )
A.数据元素是数据的最小单位
B.数据结构是具有结构的数据对象
C.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合
D.算法和程序原则上没有区别,在讨论数据结构时两者是通用的
2.归并排序的时间复杂度是( )
A.O(n2) B.O(nlog2n)
C.O(n) D.O(log2n)
3.二分查找的时间复杂度是( )
A.O(n2) B.O(nlog2n)
C.O(n) D.O(log2n)
4.顺序存储的表中有90000个元素,已按关键字值升序排列,假设对每个元素进行查找的概率相同,且每个元素的关键字值皆不相同,用顺序查找法查找时,需平均比较的次数为( )
A.25000 B.30000
C.45000 D.90000
5.散列文件是一种( )
A.顺序文件 B.索引文件
C.链接文件 D.计算寻址文件
6.两个矩阵A:m×n,B:n×p相乘,其时间复杂度为( )
A.O(n) B.O(mnp)
C.O(n2) D.O(mp)
7.常用于函数调用的数据结构是( )
A.栈 B.队列
C.链表 D.数组
8.二维数组A[n][m]以列优先顺序存储,数组A中每个元素占用1个字节,A[1][1]为首元素,其地址为0,则元素A[i][j]的地址为( )
A.(i-1)×m+(j-1) B.(j-1)×n+(i-1)
C.(j-1)×n+i D.j×n+i
9.图的广度优先搜索使用的数据结构是( )
A.队列 B.树
C.栈 D.集合
10.序列(21,19,37,5,2)经冒泡排序法由小到大排序,在第一次执行交换后所得结果为( )
A.(19,21,37,5,2) B.(21,19,5,37,2)
C.(21,19,37,2,5) D.(2,21,19,37,5)
11.数据在计算机存储器内表示时,根据结点的关键字直接计算出该结点的存储地址,这种方法称为( )
A.索引存储方法 B.顺序存储方法
C.链式存储方法 D.散列存储方法
12.在单链表中,存储每个结点有两个域,一个是数据域,另一个是指针域,指针域指向该结点的( )
A.直接前趋 B.直接后继
C.开始结点 D.终端结点
13.在已知头指针的单链表中,要在其尾部插入一新结点,其算法所需的时间复杂度为( )
A.O(1) B.O(log2n)
C.O(n) D.O(n2)
14.在链队列中执行入队操作,( )
A.需判别队是否空 B.需判别队是否满
C.限制在链表头p进行 D.限制在链表尾p进行
15.一整数序列26,59,77,31,51,11,19,42,以二路归并排序从小到大排序,第一阶段的归并结果为( )
A.31,51,11,42,26,77,59,19 B.26,59,31,77,11,51,19,42
C.11,19,26,31,42,59,51,77 D.26,11,19,31,51,59,77,42
16.下列程序段的时间复杂度为_______。
i=0;s=0;
while(s
{i++;
s=s+i;
}
17.数据的存储结构被分为顺序存储结构、_______、散列存储结构和索引存储结构4种。
18.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动_______个元素。
19.在单链表中,插入一个新结点需修改_______个指针。
20.在队列结构中,允许插入的一端称为_______。
21.稀疏矩阵采用的压缩存储方法是_______。
22.向一个栈顶指针为top的链栈中插入一个新结点*p时,应执行p->next=top和_______操作。
23.有m个叶结点的哈夫曼树所具有的结点数为_______。
24.在一棵具有n个结点的完全二叉树中,从树根起,自上而下、自左至右地给所有结点编号。设根结点编号为1。若编号为i的结点有右孩子,那么其右孩子的编号为_______。
25.在一棵树中,_______结点没有前驱结点。
26.一个具有n个顶点的有向完全图的弧数是_______。
27.n个顶点的无向图G用邻接矩阵A[n][n]存储,其中第i列的所有元素之和等于顶点Vi的_______。
28.选择排序的平均时间复杂度为_______。
29.在栈的输入端元素的输入顺序为1,2,3,4,5,6,进栈过程中可以退栈,则退栈时能否排成序列3,2,5,6,4,1和1,5,4,6,2,3,若能,写出进栈、退栈过程,若不能,简述理由。(用push(x)表示x进栈,pop(x)表示x退栈)
30.已知一棵二叉树的中根遍历序列为CBEDFAGH,后根遍历序列为CEFDBHGA,画出该二叉树。
31.给定表(15,11,8,20,14,13),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树,并判断该二叉排序树是否为平衡二叉排序树,若为非平衡二叉排序树,将它调整为平衡二叉排序树。
32.如题32图所示无向图,(1)写出其邻接矩阵;(2)写出三种以顶点A为起点的深度优先搜索顶点序列。
题32图
33.用冒泡排序法对数据序列(49,38,65,97,76,134,27,49)进行排序,写出排序过程。并说明冒泡排序是否为稳定排序。
34.编
写计算二叉树中叶子结点数目的算法。
35.开散列表的类型定义如下:
typedef struct tagnode
{keytype key;
struct tagnode*next;
}*pointer,node;
typedef pointer openhash[n];
试写出开散列表上的查找算法。
全国2011年1月高等教育自学考试
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.在顺序表中查找第i个元素,时间效率最高的算法的时间复杂度为( )
A.O(1) B.O()
C.O(log2n) D.O(n)
2.树形结构中,度为0的结点称为( )
A.树根 B.叶子
C.路径 D.二叉树
3.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={,,,,,,,,,},则图G的拓扑序列是( )
A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7
C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7
4.有关图中路径的定义,表述正确的是( )
A.路径是顶点和相邻顶点偶对构成的边所形成的序列
B.路径是不同顶点所形成的序列
C.路径是不同边所形成的序列
D.路径是不同顶点和不同边所形成的集合
5.串的长度是指( )
A.串中所含不同字母的个数 B.串中所含字符的个数
C.串中所含不同字符的个数 D.串中所含非空格字符的个数
6.组成数据的基本单位是( )
A.数据项 B.数据类型
C.数据元素 D.数据变量
7.程序段 i=n;x=0;
do{x=x+5*i;i--;}while (i>0);
的时间复杂度为( )
A.O(1) B.O(n)
C.O(n2) D.O(n3)
8.与串的逻辑结构不同的数据结构是( )
A.线性表 B.栈
C.队列 D.树
9.二叉树的第i(i≥1)层上所拥有的结点个数最多为( )
A.2i B.2i
C.2i-1 D.2i-1
10.设单链表中指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )
A.p->next=p->next->next B.p=p->next
C.p=p->next->next D.p->next=p
11.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( )
A.堆排序 B.冒泡排序
C.直接插入排序 D.快速排序
12.设字符串S1=″ABCDEFG″,S2=″PQRST″,则运算
S=CONCAT(SUBSTR(S1,2,LENGTH(S2)),SUBSTR(S1,LENGTH(S2),2))
后S的结果为( )
A.″BCQR″ B.″BCDEF″
C.″BCDEFG″ D.″BCDEFEF″
13.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并且A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则使其平衡的调整方法为( )
A.LL型 B.LR型
C.RL型 D.RR型
14.如果结点A有3个兄弟结点,而且B为A的双亲,则B的度为( )
A.1 B.3
C.4 D.5
15.数据表A中每个元素距其最终位置较近,则最省时间的排序
算法是( )
A.堆排序 B.插入排序
C.直接选择排序 D.快速排序
二、填空题(本大题共13小题,每小题2分,共26分)
请在每小题的空格中填上正确答案。错填、不填均无分。
16.下列程序段的时间复杂度为___________。
i=1;
while(i
i=i*2;
17.向一个长度为n的顺序表中第i(1≤i≤n)个元素之前插入一个元素时,需向后移动___________个元素。
18.在循环双链表中,删除最后一个结点,其算法的时间复杂度为___________。
19.队列的插入操作在队列的___________部分进行。
20.一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素为___________。
21.一个10阶对称矩阵A,采用行优先顺序压缩存储下三角,a00为第一个元素,其存储地址为1,每个元素占有1个存储地址空间,则a85的地址为___________。
22.设字符串S=″I□AM□A□STUDENT″(其中□表示空格字符),则S的长度为___________。
23.在树形结构中,没有后继的结点是___________结点。
24.一棵深度为n(n>1)的满二叉树中共有___________个结点。
25.在无向图中,如果从顶点v到顶点v′有路径,则称v和v′是___________。
26.无向完全图G采用___________存储结构较省空间。
27.在顺序查找、二分查找、索引查找和散列查找四种查找方法中,平均查找长度与元素个数没有关系的查找方法是___________。
28.快速排序最好情况下的时间复杂度为___________。
三、应用题(本大题共5小题,每小题6分,共30分)
29.稀疏矩阵A如下,写出矩阵A的三元组表及矩阵A的转置矩阵的三元组表。
30.一棵二叉树的前根遍历序列为ABCDEFG,中根遍历序列为CBDAEGF,试构造出该二叉树。
31.下述矩阵表示一个无向连通网,试画出它所表示的连通网及该连通网的最小生成树。
32.给定表(80,90,50,70,75,60,40,100),试按元素在表中的顺序将它们依次插入一棵初始时为空的二叉排序树,画出插入完成后的二叉排序树。
33.试写出一组键值(46,58,15,45,90,18,10,62)应用直接插入排序算法从小到大排序后各趟的结果。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.试分别写出二叉树的先根遍历和中根遍历的递归算法。
35.试编写以单链表为存储结构实现直接选择排序的算法。
全国高等教育自学考试
数据结构导论标准预测试卷(一)
第一部分选择题
一、 单项选择题(在每小题的四个备选答案中有一个正确答案。请将其序号写在题干后的括号内。每小题l分,共14分)
1.数据的基本单位是 ( )
A.数据结构 B.数据元素
C.数据项 D.文件
2.在一个单链表中,若要删除p指针所指向节
点的后继节点,则执行 ( )
3.下面关于线性表的叙述中,错误的是 ( )
A.线性表采用顺序存储,必须占用一片连续的存储单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链接存储,不必占用一片连续的存储单元
D.线性表采用链接存储,便于插入和删除操作
4.向顺序栈中压入元素时,是 ( )
A.先移动栈顶指针,后存人元素
B.先存人元素,后移动栈顶指针
C.无所谓谁先谁后
D.同时进行
5.在一个顺序存储的循环队列中,队首指针指向队首元素的 ( )
A.前一个位置 B.后一个位置
C.队首元素位置 D.任意位置
6.在完全二叉树中,若一个结点是叶子结点,则它没有 ( )
A.父结点 B.兄弟结点
C.左子结点和右子结点 D.左子结点、右子结点和兄弟结点
8.由3个结点可以构造出多少种不同的二叉树 ( )
A.2 B.3
C.4 D.5
9.下面关于图的论述中正确的是 ( )
A.邻接表法只能用于有向图的存储,而相邻矩阵法对于有向图和无向图的存储都适用
B.任何有向图网络拓扑排序的结果是唯一的
C.有回路的图不能进行拓扑排序
D.无向连通网络的最小生成树是唯一的
10.设图G有n个顶点和e条边,进行广度优先搜索的时间复杂度至多为 ( )
11.查找表的逻辑结构是 ( )
A.线性结构 B.树形结构
C.图状结构 D.集合
12.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用____查
找方法。 ( )
A.分块 B.顺序
C.二分 D.以上皆可
13.顺序文件修改操作困难,采用______的方法可降低所需代价。 ( )
A.附加文件 B.按关键字值排序
C.按记录输入先后排序D.快速存储
14.从未排序序列中挑选元素,并将其依次放入已排序序列初始时为空的一端,这种排序方
法为 ( )
A.插入排序 B.归并排序
C.选择排序 D.连续存储
第二部分非选择题
二、判断题(每小题2分,共20分。正确的在括号内打“对”。错误的打“错”。)
1.数据的逻辑结构是各数据元素之间的逻辑关系,是用户按使用需要而建立的。 ( )
2.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此
是属于同一数据对象。 ( )
3.数组是一组相继的内存单元。 ( )
4.栈和队列都是顺序存储的线性结构。 ( )
5.二叉树是树的特殊情形。 ( )
6.用一维数组存储二叉树时,总是以前序遍历存储结点。 ( )
7.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储
空间大小只与
图中结点个数有关,而与图的边数无关。 ( )
8.解决冲突的方法有“拉链法”和构造后继散列地址序列。 ( )
9.存放在磁带、磁盘上的文件,既可能是顺序文件也可以索引结构或其它结构类型的文件。
( )
10.对于n个记录的集合进行快速排序,所需要的附加空间数0(n)。 ( )
三、填空题(每小题2分。共30分)
1.一个存储结构主要包括_______、_____和附加设施。
2.在一个单链表中,在指针P所指向的结点之后插入指针s所指向的结点时,应执行“s一>next=______:”和 “P一>next=_______:”的操作。
3.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取
线性表中的元素时,应采用_________存储结构。
4._______可以作为实现递归函数调用的一种数据结构。
5.对带头结点的链队列lq,判定队列中只有一个数据元素的条件是lq→______→
__==lq→_____。
7.树与二叉树之间最主要的差别是:二叉树中各结点的子树要区分为______和_____。
8.用于描述分类过程的二叉树称为______。
9.在具有n个顶点的图的生成树中,含有________条边。
10.对n个顶点,e条边的无向图,其邻接表表示中,需要_______ 个结点。
11.在散列存储中,装填因子a的值越大,存取元素时发生冲突的可能性_____,a的值
越小,存取元素时发生冲突的可能性就_____。
12.一个索引顺序表由两部分组成:一个______和一个_____。
13.文件的基本运算有两类:_____和______。
14.对n个记录的集合进行冒泡排序,其最坏情况下所需的时间复杂度是______。
15.按照排序过程涉及的存储设备的不同,排序可分为_____和______。
四、应用题(每小题6分,共24分)
1.已知一棵二叉树的前根遍历结果为ABCDEFGHIJ,中根遍历的结果为CBEDAHGUF,试
画出该二叉树。
2.无向图G如图所示
试给出(1)该图的邻接矩阵
(2)从A出发的“深度优先”遍历序列
3.如图所示的二叉排序树中
(1)删除关键码15;(2)插入关键码20,分别画出得到的=叉排序树
4.设有一个栈,元素进栈的次序为A,B,C,D,E,写出下列出栈序列的操作序列。
(1)C,B,A,D,E
(2)A,C,B,E,D
其中1为进栈操作,0为出栈操作。
五、设计题(每小题6分,共12分)
1.一个带头指针的单链表,写出在其值为X的结点之后插入m个结点的算法。
2.以二叉链表为存储结构,写出求二叉树中叶子数的算法。