PTA数据结构与算法期末模拟题中的一套题目

判断题

对一棵结点数量超过1的AVL树进行中序遍历,将得到一个递增序列。

T F


分数 2

作者 周强

单位

一个无向图G,若某顶点v到其它每个顶点都有至少一条路径,则图G只有1个连通分量。

T F


分数 2

作者 周强

单位

最大堆(大顶堆、max-heap)从根结点到其它任一结点的路径上的所有结点值是从大到小排列的。

T F


分数 2

作者 周强

单位

如果无向图G必须进行3次深度优先搜索才能访问其所有顶点,则G一定没有回路(环)。

T F


分数 2

作者 周强

单位

若图G为连通图且不存在拓扑排序序列,则图G必有环。

T F


分数 2

作者 DS课程组

单位

某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。

T F


分数 2

作者 DS课程组

单位

N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(log**N)。

T F


分数 2

作者 周强

单位

AVL树T的最大元素一定位于树根的右子树。

TF


分数 2

作者 周强

单位

若图G为连通图,则G的生成树是G的包含全部n个顶点的一个极大联通子图。

T F


分数 2

作者 周强

单位

一棵有9层结点的完全二叉树(层次从1开始计数),至少有255个结点。

T F

选择题(单选题)

设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是:

A.

1

B.

3

C.

2

D.

4


分数 2

作者 DS课程组

单位

对下图进行拓扑排序,可以得到不同的拓扑序列的个数是:

在这里插入图片描述

A.

3

B.

2

C.

1

D.

4


分数 2

作者 陈越

单位

若某图的深度优先搜索序列是{V1, V4, V0, V3, V2},则下列哪个图不可能对应该序列?

A.

在这里插入图片描述

B.

C.

在这里插入图片描述

D.

在这里插入图片描述


分数 2

作者 周强

单位

以下对于堆和哈夫曼树的描述,正确的是:

A.

堆一定是一棵完全二叉树,因此适合采用链式存储实现。

B.

堆的任意非叶节点的左右子树(如果非空)互换,仍然是堆。

C.

哈夫曼树的叶结点一定都在同一层。

D.

哈夫曼树中没有度为1的结点。


分数 2

作者 周强

单位

下列代码的时间复杂度是:

for(i=0; i<N; i++)
    for(j=0; j<i; j+=2)
        printf("%d,%d\n", i, j);

A.

O(N2)O(N^2)O(N2)

B.

O(N×i)O(N×i)O(N×i)

C.

O(N)

D.

O(N+i×j)


分数 2

作者 DS课程组

单位

将{28, 15, 42, 18, 22, 5, 40}依次插入初始为空的二叉搜索树。则该树的后序遍历结果是:

A.

5, 15, 18, 22, 40, 42, 28

B.

28, 22, 18, 42, 40, 15, 5

C.

5, 22, 18, 15, 40, 42, 28

D.

5, 22, 15, 40, 18, 42, 28


分数 2

作者 冯雁

单位

将元素序列{18, 23, 4, 26, 31, 33, 17, 39}按顺序插入一个初始为空的、大小为13的散列表中。散列函数为:H(Key)=Key%13,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?

A.

0.63

B.

0.31

C.

0.54

D.

0.62


分数 2

作者 魏宝刚

单位

对于给定的有向图如下,其邻接矩阵为:

6-4.JPG

A.

A.JPG

B.

B.JPG

C.

C.JPG

D.

D.JPG


分数 2

作者 DS课程组

单位

对最小堆(小顶堆){1,3,2,12,6,4,8,15,14,9,7,5,11,13,10} 进行三次删除最小元的操作后,结果序列为:

A.

4,5,6,12,7,10,8,15,14,13,9,11

B.

4,6,5,13,7,10,8,15,14,12,9,11

C.

4,5,6,7,8,9,10,11,12,13,14,15

D.

4,6,5,12,7,10,8,15,14,9,13,11


分数 2

作者 DS课程组

单位

N个记录进行堆排序,最坏的情况下时间复杂度是:

A.

O(log**N)

B.

O(Nlog**N)

C.

O(N)

D.

O(N2)

填空题

一棵二叉树的后序遍历序列是DEFBHGKCA,中序遍历序列是DBEFAGHCK,则它的前序遍历序列是 ________3 分

. (填写半角大写字母不要添加空格,格式如ABCDEFG).


分数 2

作者 周强

单位

如果一棵二叉树有20个度为2的结点,则它的叶结点数量为:________2 分个。 (填写半角阿拉伯数字如1234567890,不要添加空格等字符)


分数 3

作者 周强

单位

若使用Kruskal算法获取下图的最小生成树,我们选择加入生成树的第四条边的权值是: ________3 分(填写半角阿拉伯数字如1234567890,不要添加空格等其它字符)

graph.png


分数 2

作者 周强

单位

如果无向完全图G中有45条边,则G的生成树有 ________2 分条边。(填写半角阿拉伯数字如1234567890,不要添加空格等其它字符)

程序填空题

向最小堆中插入元素

以下程序包含一个“向最小堆中插入元素”的函数 insertIntoHeap( )

请填空将函数补充完整

(注意,堆中没有“哨兵”元素)

#include <stdio.h>
#include <stdlib.h>
/*  堆结构体定义 */
struct Heap{
   
   
    int *data;   // 堆元素存储空间指针,堆元素按照二叉树顺序存储的方式,从data[1]开始存放,data[0]不使用,无哨兵元素
    int capacity; // 堆容量
    int size;  // 堆元素数量
};
struct Heap* initHeap(int capacity){
   
      // 初始化堆
    struct Heap* h;
    h = (struct Heap*)malloc(sizeof(struct Heap));
    if(!h) return NULL;
    h->data = (int*)malloc(sizeof(int)*capacity+1);
    if(h->data == NULL){
   
   
        free(h);
        return NULL;
    }
    h->capacity = capacity;
    h->size = 0;
    return h;
};
int insertIntoHeap(struct Heap* h, int x){
   
   
    if( 1) return 0;  // 堆满则返回0. (程序中没有定义名如 "IsFull( )"之类的函数)
    int i;
    for(i=++h->size; 1&& 2; 1)
        h->data[i] = 2;
    h->data[i] = 1;
    return 1;  // success
}
int main(){
   
     /* main仅为示例,实际使用以上代码中两个函数的情况可能有所不同 */
    struct Heap *h;
    h = initHeap( 100 );
    insertIntoHeap(h,  2018);
    return 0;
}

分数 7

循环队列操作

作者 周强

单位

本题要求实现循环队列的入队、出队操作。

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10  // 队列结构体中的数组大小,以10为例,实际测试数据不一定为10
struct Queue{
   
      // 队列结构体
    int data[MAXSIZE];  // 队列元素数组
    int front;
    int rear;
};
/* 以下是入队操作,若队列未满,将元素x插入队列、返回1;若队列满,返回0 */
int EnQ(struct Queue *pq, int x){
   
   
    if(  1)
        return 0;   // 队列满,返回0
    pq->rear = 1;
   1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值