数据结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A
B
C
D
7. 具有 4 个结点的二叉树的形状有( )种。
A 16 B 5 C 80 D 20 8. 一个有 n 个顶点的无向图最多有( )条边 A n-1 B n+1 C n(n+1)/2 D n(n-1)/2 9. 线性表必须先( )后,才能对线性表进行折半检索。 A 元素连续存放 B 元素链接式存放 C 元素按关键值大小排列 D 元素按存放地址高低排 列 10. 从未排序子表中依次取出元素放入到已排序子表的正确位置上的方法是( ) A 简单选择排序 B 快速排序 C 冒泡排序 D 简单插入排序
A 10/3 B 49/15 C 8 D 4 9. 快速排序算法在( )情况下效率最低 A 线性表元素个数过多 B 线性表元素个数为偶数 C 线性表元素已基本有序 D 线性表 元素个数较少
二、判断题
( )1、队列的操作方式是先进后出。 ( )2、数据的最小单位是数据元素而不是数据项 ( )3、一颗含有 N 个结点的完全二叉树,它的深度是[ log2N]+1. ( )4、图的深度优先遍历序列和广度优先遍历序列不是唯一的 ( )5、简单插入、简单选择和冒泡排序算法所需的附加存储空间都一样多。
}
head=t;
if(
)
return(head);
}
《软件技术基础》课程自测题二
一、选择题
1. 数据结构不是一门研究数值计算的学科,它主要研究计算机中的( )以及它们之间的 ( )和运算等方面
A 数据元素 B 计算机方法 C 存储 D 数据映像 E 排列 F 关系 G 设备 2. 链表不具备的特点是( ) A 不必先准备足够的存储空间 B 插入元素时不需要移动元素位置 C 可直接访问任意元素
A 58 B 85 C 23 D 32
6. 具有 k 层的二叉树只有度为 0 和度为 2 的结点,则该二叉树上最多有(
A 2k B 2k+1
C 2 k-1
D 2(k-1) -1
7. 在一个有向图中,所有顶点的入度之和与所有顶点的出度之和之间有(
)结点 )关系
A 二分之一
B 两倍
C 相等
D 不确定
8. 就图的邻接矩阵而言,( )是正确的。
三、填空题
1. 数据结构是讨论计算机系统中数据的组织形式及 机进行识别、存储和加工所进行的描述,统称为
。把客观事物采用计算 。
2. 在有 n 个顶点的有向图中,每个顶点的度最大可达
。
3. 在简单插入和简单选择排序中,如果待排序序列已基本正序,则选择
较高效,如果待排序序列基本是反序,则选择
算法比较高效。
D 存储空间与长度成正比 3. 判断循环队列 q 为空的条件是( )
A q->front == q->rear B q->front != q->rear C q->front == (q->rear + 1)%MAXNUM D
q->front != (q->rear + 1)%MAXNUM 4. 设有串 S1=”STUDENT” 和串 S2=”TEACH” ,函数 add(x,y)实现将 y 串连接到 x
《软件技术基础》课程自测题一
一、单项选择题
1. 采用二元描述法可描述任意数据结构为(K,R),其中 K 和 R 分别代表( )的集合 A 算法和操作 B 逻辑结构和存储结构 C 数据元素和关系 D 结构和算法 2. 计算机算法指的是( ) A 计算方法 B 程序 C 解决问题的方法和步骤 D 调度方法 3. 一个栈的元素进栈顺序是 1、2、3、4、5,则出栈顺序不可能是( ) A 1、2、3、4、5 B 2、3、1、5、4 C 4、3、5、1、2 D 4、5、3、2、1 4. 一个队列的入队序列是 1、2、3、4,则队列的输出顺序为( ) A 4、3、2、1 B 1、2、3、4 C 1、2、4、3 D 2、1、3、4 5. 在链接式队列中删除结点时,执行的操作为( ) A rear = front->next B front = front->next C front = rear->next D rear = rear->next 6. 如图所示的二叉树中,( )不是完全二叉树
A (rear – front)%m B (rear – front + m)%m C rear – front +1 D rear – front – 1
5. 一个 10×10 的对称矩阵采用压缩存储方式,以行优先方式,第一行只存储一个元素, 则第 5 行第 8 列的元素放位置距离第一个元素为( )个单元
图时的顶点序列。
《软件技术基础》课程自测题三
一、选择题
1. 在数据结构中,从逻辑上可以把数据结构分成( )
A 动态结构和静态结构 B 紧缩结构和稀疏结构
C 外部结构和内部结构 D 线性结构和非线性结构 2. 与单向链表相比,双向链表的优点是( )
A 可以进行随机访问
B 更灵活地访问相邻结点
C 不需要表头或表尾指针 D 插入、删除操作更简便
三、填空题
1.
和
属于非线性结构,
和
属于线性结构。
2. 设元素入栈的顺序为 1 2 3 4,为了得到 1 3 4 2 的出栈顺序,各元素入栈和出栈操作的
顺序是
。
3. 散列检索方式中,解决冲突的方法可以分为两类,它们是
和
。
4. 在一个图中,所有顶点的度数之和等于所有边数的
。
四、简答与简单应用题
1. 简述下列术语:树的深度、图的路径、网络 2. 某图的邻接表如下所示,请根据该邻接表,从顶点 F 开始深度遍历该图和广度遍历该
3. 假设 n 个元素按照一定的顺序进栈和出栈,已知第一个出栈的元素是最后一个进栈的元 素,则( )是正确的
A 第 i 个出栈的元素是第 i 个入栈的元素 B 第 i 个出栈的元素是第 n-i 个入栈的元素 C 第 i 个出栈的元素是第 n-i+1 个入栈的元素 D 不能确定
4. 循环队列 q 当前队列中元素的个数为( )
五、应用题
1. 将一棵树变换成二叉树,然后写出先、中、后序遍历次序
1
算法比
2
3
4
7
5
6
8
9
10
A 第 i 行的非零元素个数与第 i 列的非零元素个数一定相等 B 矩阵中非零元素的个数等于
图中的边数 C 第 i 行非零元素个数为对应顶点的出度 D 零元素的个数为顶点个数的两倍
9. 二叉排序树为( )形态时,查找效率最高。
A 所有结点的左子树均为空 B 所有结点的右子树均为空 C 具有最小深度 D 具有最大深 度
二、判断题
( )1、二维数组可以看作是数据元素为线性表的线性表。 ( )2、若某二叉树的先序遍历和中序遍历序列相同,则此二叉树一定有且仅有一个结点 ( )3、顺序存储方式只能用于存储线性结构 ( )4、如果已知二叉树先序遍历和中序遍历序列,可以得到该二叉树的后序遍历顺序。 ( )5、一个元素集合形成的二叉排序树不是唯一的,但根据一个元素序列形成的二叉排 序树是唯一的。
10. 一个长度为 n 的顺序表中,在第 i 个元素前插入一个新元素时,需要向后移动( )个 元素
A n-i
B n-i+1
C n-i-1
Di
二、判断题
( )1、线性表的链接存储结构优于线性存储结构。 ( )2、任何一个二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序是不会改 变的 ( )3、将一棵树转换为二叉树后,根结点不一定没有右子树 ( )4、邻接表只能用于存储无向图。 ( )5、如果图的邻接矩阵是一个三角矩阵,则该图中不存在回路。
个指针。
3. 分块查找算法中,块间元素的排列是
的,块内元素的排列是
的。
四、简答与简单应用题
1. 简述下列术语:树结点的度、树的度、图顶点的度,如果把树看作是有向图,则树结点 的度是否等于图顶点的度?
2. 已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组 a[12]中,根据折半搜索过程填写成功搜索下表中所给元素 34, 56, 58, 63, 94 时的比较次 数。
串的后面,函数 subs(s,i,j)将得到从串 s 中第 i 个字符开始的 j 个字符组成的子串, 函数 len(s)返回串 s 的长度,则 add(subs(S1,3,len(S2)),subs(S2,len(S1)-4,3))的结果是 () A 、ACHUDENT B、 A百度文库HUDE C、 UDENTACH D、 UDEACH 5. 某二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树一定是( ) A 空二叉树或仅有一个结点 B 完全二叉树 C 没有度为 2 的结点 D 没有度为 1 的结点 6. 设 X 与 Y 是二叉树上的两个结点,X 要在中序遍历中位于 Y 之前,则一定有( ) A X 在 Y 的左方 B X 在 Y 的右方 C X 在 Y 的上方 D X 在 Y 的下方 7. 一个具有 k 条边的无向图,采用邻接表存储,则共需要( )个邻接结点 A k B 2k C k(k-1)/2 D k(k+1)/2 8. 采用折半检索方式对一个有 15 个元素的有序线性表检索,元素的平均查找长度为( )
q=p;
{node *p,*q,*r,*s,*t;
p=p->next;
t=NULL;
}
while(head!=NULL){
if(s= =head) head=head->next;
p=head;
else
q=NULL;
;
s=head;
s->next=t;
r=NULL;
t=s;
while(p!=NULL){
三、填空题
1. 利用二维数组 a 存放元素,设元素个数为 M,分为 I 行和 J 列,每个元素占 8 字节空间,
则共需要
字节,第 4 行和第 5 列的元素加起来占用
字节空
间,如果按照行优先存放,元素 a34 存放位置与按照列优先存放的元素的行号和列号分
别为
存放位置相同。
2. 在双链表中,每个节点具有
四、简答与简单应用题
1. 根据数据结构的二元描述法,画出结点逻辑关系图 B=(K,R) K={k1,k2,……k9} R={<k1,k3>,<k1,k8>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>, <k8,k9>,<k9,k7>,<k4,k7>,<k4,k6>,<k2,k3>} 2. 写一个算法求循环链表的元素个数,设循环链表表首指针为 head
五、应用题
1. 已知一棵二叉树的中序和先序序列如下,
中序序列:c,b,d,e,a,g,i,h,j,f 先序序列:a,b,c,d,e,f,g,h,i,j
(1)求该二叉树的后序遍历序列,
(2)试构造该二叉树。 2. 下面是用 C 语言写的单链表直接选择排序算法,排序的结果是单链表按关键字值升序
排列。算法中有若干处语句和判断条件空缺,请在空缺处填上适当的语句或条件。(提
示:该算法的基本思想是,每次从链表 p 中找出最大的元素,从链表取下元素,放在新
链表 t 的第一个位置,如此反复,t 链表就成为一个升序排列的链表)
typedef struct node{ int key;
{
;
struct node *next;
}node;
;
}
node *selectsort(node *head)