太原理工大学数据结构试题库及答案
- 格式:docx
- 大小:416.11 KB
- 文档页数:40
数据结构c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构和非线性结构的区别在于()。
A. 结构中元素的个数B. 结构中是否包含子结构C. 结构中元素之间是否有一对一关系D. 结构中元素之间是否有一对多关系答案:C2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。
A. 存储密度高B. 存储密度低C. 插入和删除操作快D. 存储空间可以动态分配答案:A3. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为()。
A. i-1B. n-iC. n-i+1D. n-i-1答案:B4. 栈的运算遵循()原则。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C5. 在二叉树的前序遍历中,访问顺序为()。
A. 根-左-右B. 左-根-右C. 左-右-根D. 右-左-根答案:A6. 哈希表的冲突解决方法中,链地址法是()。
A. 将所有元素存储在同一个存储单元B. 将所有元素存储在同一个链表中C. 将所有元素存储在同一个数组中D. 将所有元素存储在同一个链表的同一个位置答案:B7. 在图的遍历中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于()。
A. 遍历的顺序不同B. 遍历的起点不同C. 遍历的路径不同D. 遍历使用的存储结构不同答案:D8. 快速排序算法的时间复杂度为()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B9. 归并排序算法的时间复杂度为()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B10. 在二叉搜索树中,查找一个元素的时间复杂度为()。
A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的时间复杂度通常用______来描述。
答案:大O符号2. 线性表的两种基本操作是插入和______。
2022年太原理工大学数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、一个多道批处理系统中仅有P1,和P2两个作业,P2比P1晚5ms到达。
它们的计算和I/O操作顺序如下:P1:计算60ms,I/O 80ms,计算20msP2:计算120ms,I/O 40ms,计算40ms。
若不考虑调度和切换时间,则完成两个作业需要的时间最少是()。
A.240msB.260msC.340msD.360ms2、下列观点中,不是描述操作系统的典型观点的是()。
A.操作系统是众多软件的集合B.操作系统是用户和计算机之间的接口C.操作系统是资源的管理者D.操作系统是虚拟机3、在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。
所谓临界区是指()。
A.一个缓冲区B.一段数据区C.同步机制D.一段程序4、下列关于管程的叙述中,错误的是()。
A.管程只能用于实现进程的互斥B.管程是由编程语言支持的进程同步机制C.任何时候只能有一个进程在管程中执行D.管程中定义的变量只能被管程内的过程访问5、设有n个进程共用一个相同的程序段,若每次最多允许m个进程(mSn)同时进入,临界区,则信号量的初值为()。
A.nB.mC.m-nD.-m6、某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。
假设一个缓冲区与一个磁盘块人小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs.CPU对一块数据进行分析的时间为50us。
在单缓冲区和双缓冲区结构ド,读入并分析完该文件的时间分别是()。
Α.1500μs,1000μsB.1550μs,1100μsC.1550μs,1550μsD.2000μs,2000μs7、 I/O中断是CPU与通道协调I作的种于段,所以在()时,便要产生中断。
A.CPU执行“启动I/O”指令而被通道拒绝接收B.通道接受了CPU的启动请求C.通道完成了通道程序的执行D.通道在执行通道程序的过程中8、下列关于索引表的叙述,()是正确的。
2021年太原理工大学数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、连续两次启动同一存储器所需的最小时间间隔称为()。
A.存储周期B.存取时间C.存储时间D.访问周期2、某SRAM芯片,其容量为512×8位,除电源和接地端外,该芯片引出线的最小数目应该是()。
A.23B.25C.50D.193、假设有7位信息码010101,则低位增设偶校验位后的代码和低位增设奇校验位后的代码分别为()。
A.01101010 01101010B.0101010 01101011C.01101011 01101010D.01101011 011010114、为了表示无符号十进制整数,下列哪些是合法的8421BCD码?()I.01111001 Ⅱ.11010110 Ⅲ.00001100 Ⅳ.1000010lA.I、IⅡB.Ⅱ、ⅢC.I、ⅣD.I、Ⅱ、Ⅲ5、某数采用IEEE754标准中的单精度浮点数格式表示为C6400000H,则该数的值是()。
A.-1.5×213B.-1.5×212C.-0.5×213D.-0.5×2126、下列关于总线设计的叙述中,错误的是()。
A.并行总线传输比串行总线传输速度快B.采用信号线复用技术可减少信号线数量C.采用突发传输方式可提高总线数据传输率D.采用分离事务通信方式可提高总线利用率7、控制总线主要用来传送()。
I.存储器和1/O设备的地址码II.所有存储器和I/O设备的时序信号III.所有存储器和1/O设备的控制信号IV.来自I/O设备和存储器的响应信号A.II、IIIB. I,III,IVC. III,IVD.II,III. IV8、已知计算机A的时钟频率为800MHz,假定某程序在计算机A上运行需要12s。
现在硬件设计人员想设计计算机B,希望该程序在B上的运行时间能缩短为8s,使用新技术后可使B的时钟频率大幅度提高,但在B上运行该程序所需要的时钟周期数为在A上的1.5倍。
数据结构试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是元素之间存在一对一的线性关系。
以下哪个数据结构不属于线性结构?A. 栈B. 队列C. 树D. 链表答案:C2. 栈(Stack)是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?A. PushB. PopC. TopD. Sort答案:D3. 在二叉树的遍历中,前序遍历的顺序是:A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表的冲突可以通过多种方法解决,以下哪个不是解决哈希表冲突的方法?A. 链地址法B. 开放地址法C. 再散列法D. 排序法答案:D5. 以下哪个排序算法是稳定的?A. 快速排序B. 堆排序C. 归并排序D. 选择排序答案:C6. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构来实现?A. 队列B. 栈C. 链表D. 哈希表答案:B7. 以下哪个是图的存储方式?A. 顺序存储B. 链式存储C. 散列表D. 矩阵存储答案:D8. 动态数组(如C++中的vector)在插入元素时可能需要进行的操作是:A. 原地扩展B. 复制元素C. 重新分配内存D. 释放内存答案:C9. 以下哪个不是算法的时间复杂度?A. O(1)B. O(log n)C. O(n^2)D. O(n!)答案:D10. 在查找算法中,二分查找法要求被查找的数据必须是:A. 无序的B. 有序的C. 随机分布的D. 唯一元素答案:B二、简答题(每题5分,共30分)1. 简述链表和数组的区别。
答案:链表和数组都是存储数据的线性数据结构,但它们在内存分配、访问方式、插入和删除操作等方面存在差异。
数组在内存中是连续存储的,可以通过索引快速访问任意元素,但插入和删除元素时可能需要移动大量元素。
链表在内存中是非连续存储的,每个元素包含数据和指向下一个元素的指针,不支持通过索引快速访问,但插入和删除操作只需要改变指针,不需要移动其他元素。
数据结构c语言期末考试题库及详解答案数据结构C语言期末考试题库及详解答案一、选择题1. 在数据结构中,线性表的顺序存储结构被称为:A. 链式存储结构B. 栈C. 队列D. 数组答案:D2. 下列关于栈的描述,错误的是:A. 栈是一种特殊的线性表B. 栈的特点是后进先出C. 栈顶元素是最后插入的元素D. 栈的插入和删除操作都发生在栈顶答案:C二、填空题1. 在C语言中,定义一个具有10个元素的整型数组可以使用语句:________。
答案:int arr[10];2. 链表与数组相比,其优点是________。
答案:动态内存分配,不需要预先知道数据规模三、简答题1. 简述二叉树的遍历方法有哪些,并说明它们的特点。
答案:二叉树的遍历方法主要有前序遍历、中序遍历和后序遍历三种。
前序遍历首先访问根节点,然后递归地遍历左子树和右子树;中序遍历首先遍历左子树,然后访问根节点,最后遍历右子树;后序遍历首先遍历左子树和右子树,最后访问根节点。
每种遍历方法都可以用来对二叉树进行不同的操作和分析。
2. 什么是哈希表?它在实际应用中有哪些优点?答案:哈希表是一种通过哈希函数将键映射到表中一个位置来访问记录的数据结构。
它的优点包括:快速的数据访问速度,因为哈希表通常在常数时间内完成查找;动态的内存分配,可以根据需要调整存储空间;以及灵活的键值对存储方式。
四、编程题1. 编写一个C语言函数,实现单链表的逆序输出。
答案:```c#include <stdio.h>#include <stdlib.h>typedef struct Node {int data;struct Node *next;} Node;void reversePrint(Node *head) {if (head == NULL) return;reversePrint(head->next);printf("%d ", head->data);}int main() {Node *head = (Node *)malloc(sizeof(Node));head->data = 1;head->next = NULL;// 假设链表已经构建完毕reversePrint(head);return 0;}```2. 请实现一个C语言函数,用于计算一个字符串中不同字符的数量。
2022年太原理工大学数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、采用八体并行低位交叉存储器,设每个体的存储容量为32K×16位,存储周期为400ns,下述说法中正确的是()。
A.在400ns内,存储器可向CPU提供2位二进制信息B.在l00ns内,每个体可向CPU提供27位二进制信息C.在400ns内,存储器可向CPU提供2位二进制信息D.在100ns内,每个体可向CPU提供2位二进制信息2、在一个容量为l28KB的SRAM存储器芯片上,按字长32位编址,其地址范围可从0000H到()。
A.3HB.7HC.7HD.3fH3、一个浮点数N可以用下式表示:N=mr me,其中,e=rc g;m:尾数的值,包括尾数采用的码制和数制:e:阶码的值,一般采用移码或补码,整数;Tm:尾数的基;re:阶码的基;p:尾数长度,这里的p不是指尾数的:进制位数,当ra=16时,每4个二进制位表示一位尾数;q:阶码长度,由于阶码的基通常为2,因此,在一般情况下,q就是阶码部分的二进制位数。
研究浮点数表示方式的主要目的是用尽量短的字长(主要是阶码字长q和尾数字长的和)实现尽可能大的表述范围和尽可能高的表数精度。
根据这一目的,上述6个参数中只有3个参数是浮点数表示方式要研究的对象,它们是()。
A.m、e、rmB. rm、e、rmC.re、p、qD. rm、p、q4、下列为8位移码机器数[x]移,当求[-x]移时,()将会发生溢出。
A.11111111B.00000000C.10000000D.011l1l115、为了表示无符号十进制整数,下列哪些是合法的8421BCD码?()I.01111001 Ⅱ.11010110 Ⅲ.00001100 Ⅳ.1000010lA.I、IⅡB.Ⅱ、ⅢC.I、ⅣD.I、Ⅱ、Ⅲ6、一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或写入多个数据。
2022年太原理工大学数据科学与大数据技术专业《计算机网络》科目期末试卷B(有答案)一、选择题1、计算机网络最基本的功能是()。
I.流量控制Ⅱ.路由选择 III.分布式处理 IV.传输控制A.I、Ⅱ、IVB. I、III、ⅣC.I、IVD. Ⅲ、IV2、一般来说,学校的网络按照空间分类属于()。
A.多机系统B.局域网C.城域网D.广域网3、下面的地址中,属于单播地址的是()。
A.172.31.128.255/18B.10.255.255.255C.192.168.24.59/30D.224.105.5.2114、在IP首部的字段中,与分片和重组无关的是()。
注:假设现在已经分片完成。
A.总长度B.标识C.标志D.片偏移5、多路复用器的主要功能是()。
A.执行数/模转换B.结合来自多条线路的传输C.执行串/并转换D.减少主机的通信处理强度6、以下哪个是快速以太网的介质访问控制方法()A.CSMA/CDB.令牌总线C.令牌环D.100VG-AnyLan7、有一条TCP连接,它的最大报文段长度为2KB,TCP拥塞窗口为24KB,这时候发生了超时事件,那么该拥塞窗口变成了()。
A.1KBB.2KBC.5KBD.7KB8、下列关于TCP的叙述中,正确的是()。
I.TCP是一个点到点的通信协议Ⅱ.TCP提供了无连接的可靠数据传输IⅡ.TCP将来自上层的字节流组织成IP数据报,然后交给IPIV.TCP将收到的报文段组成字节流交给上层A.I、Ⅱ、ⅣB. I、ⅢC.仅ⅣD.Ⅲ、Ⅳ9、传输层为()之间提供逻辑通信。
A.主机B.进程C.路由器D.操作系统10、下列关于SMTP的叙述中,正确的是()。
I.只支持传输7比特ASCII码内容II支持在邮件服务器之间发送邮件III支持从用户代理向邮件服务器发送邮件IV支持从邮件服务器向用户代理发送邮件A.仅I、II和IIIB.仅I、II和IVC.仅I、III和IVD.仅II、III和IV11、通过"Internet信息服务(IIS)管理器”管理单元可以配置FTP服务器,若将控制端口设置为2222,则数据端口自动设置为()。
2022年太原理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、下述文件中适合于磁带存储的是()。
A.顺序文件B.索引文件C.哈希文件D.多关键字文件2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.403、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表B.双向链表C.单循环链表D.顺序表4、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V75、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=sB.s->next=hC.s->next=h;h->next=sD.s->next=h-next;h->next=s6、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。
下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ7、下列叙述中,不符合m阶B树定义要求的是()。
数据结构试题库及答案第一章概论一、选择题1、研究数据结构就是研究(D)。
A.数据的逻辑结构B.数据的存储结构C.数据的逻辑结构和存储结构D.数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是(A)。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是(D)。
A.图B.树C.广义表D.栈6、算法是(D)。
A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)11、抽象数据类型的三个组成部分分别为(A )。
A. 数据对象、数据关系和基本操作B.数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型二、填空题三、综合题1、将数量级O(1),O(N),O(N2),O(N3),O(NLOG2N),O(LOG2N),O(2N)按增长率由小到大排序。
答案:O(1) O(log2N) O(N) O(Nlog2N) O(N2) O(N3) O(2N)一、填空题1. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
2. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
3. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引、散列。
9. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
二、单项选择题(C)2. 数据结构中,与所使用的计算机无关的是数据的结构;A)存储B)物理C)逻辑D)物理和存储三、简答题1.数据结构和数据类型两个概念之间有区别吗?答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。
数据结构题库及答案Excel1. 单链表的插入操作- 问题:请描述在单链表中插入一个新节点的步骤。
- 答案:首先确定插入位置,然后创建一个新节点。
将新节点的next指针指向原链表中该位置的节点。
接着,更新前一个节点的next指针指向新节点。
最后,如果插入位置是链表头部,则更新头指针。
2. 二叉树的遍历方法- 问题:请列举二叉树的三种基本遍历方法。
- 答案:前序遍历(根-左-右)、中序遍历(左-根-右)、后序遍历(左-右-根)。
3. 哈希表的冲突解决方法- 问题:在哈希表中,如何解决冲突?- 答案:常见的冲突解决方法有开放地址法(线性探测、二次探测、双重哈希)和链地址法。
4. 堆排序的基本原理- 问题:堆排序的基本原理是什么?- 答案:堆排序基于二叉堆数据结构,通过构建最大堆或最小堆,然后逐步将堆顶元素与堆尾元素交换,缩小堆的范围,最后得到有序序列。
5. 图的深度优先搜索(DFS)- 问题:请简述图的深度优先搜索(DFS)的基本思想。
- 答案:DFS从图的某个顶点开始,沿着邻接表的边尽可能深地搜索,直到无法继续为止,然后回溯到上一个顶点,继续搜索其他邻接顶点。
6. 快速排序算法的时间复杂度- 问题:快速排序算法的平均时间复杂度是多少?- 答案:快速排序算法的平均时间复杂度为O(n log n)。
7. 栈的后进先出(LIFO)特性- 问题:栈的后进先出特性是如何体现的?- 答案:栈的LIFO特性体现在元素的添加和删除操作都发生在栈顶,即最后添加的元素最先被删除。
8. 队列的先进先出(FIFO)特性- 问题:队列的先进先出特性是如何体现的?- 答案:队列的FIFO特性体现在元素的添加操作在队尾进行,而删除操作在队首进行,即最先添加的元素最先被删除。
9. 最小生成树的构造方法- 问题:请列举两种最小生成树的构造方法。
- 答案:普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法。
10. 动态规划的适用场景- 问题:动态规划适用于解决哪些类型的问题?- 答案:动态规划适用于具有重叠子问题和最优子结构特性的问题,如斐波那契数列、背包问题、最长公共子序列等。
2022年太原理工大学数据科学与大数据技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、列选项中,不可能在用户态发生的事件是()。
A.系统调用B.外部中断C.进程切换D.缺页2、假设5个进程P0、P1、P2、P3、P4共享3类资源R1、R2、R3.这些资源总数分别为18、6、22。
T0时刻的资源分配情况(见表),此时存在的一个安全序列是()。
A. P0, P2, P4, P1, P3B. P1, P0, P3, P4, P2C. P2, P1, P0, P3, P4D. P3, P4, P2, P1, P03、下面关于管程的叙述错误的是()。
A.管程是进程的同步工具,解决信号量机制大量同步操作分散的问题B.管程每次只允许一个进程进入管程,C.管程中V操作的作用和信号量机制中V操作的作用相同D.管程是被进程调用的,是语法范围,无法创建和撤销4、进程和程序的本质区别是()A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的5、下面所列进程的3种基本状态之间的转换不正确的是()A.就绪状态→执行状态B.执行状态→就绪状态C.执行状态→阻塞状态D.就绪状态→阻塞状态6、在采用SPOOLing技术的系统中,用户暂时未能打印的数据首先会被送到()存储起来。
A.磁盘固定区域B.内存固定区域C.终端D.打印机7、某进程的段表内容见表,当访问段号为2、段内地址为400的逻辑地址时,进行地址转换的结果是()。
A.段缺失异常B.得到内存地址4400C.越权异常D.越界异常8、如果文件采用直接存取方法,且文件大小不固定,则应采用()物理结构。
A.直接B.索引C.随机D.顺序9、若文件f1的硬链接为f2,两个进程分别打开fl和f2,获得对应的文件描述符为fd1和fd2,则下列叙述中,止确的是()I.fl和f2的读写指针位置保持相同II.fl和f2共享同个内存索引节点III.fdl 和fd2分别指向各自的用户打开文件表中的一项,A.仅IIB. 仅II、IIIC.仪I、IID. I、II和II10、一个页式虚拟存储系统,其并发进程数固定为4个。
2022年太原理工大学数据科学与大数据技术专业《数据库系统原理》科目期末试卷A(有答案)一、填空题1、对于非规范化的模式,经过转变为1NF,______,将1NF经过转变为2NF,______,将2NF经过转变为3NF______。
2、视图是一个虚表,它是从______导出的表。
在数据库中,只存放视图的______,不存放视图对应的______。
3、数据的安全性是指____________。
4、DBMS的完整性控制机制应具备三个功能:定义功能,即______;检查功能,即______;最后若发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
5、以子模式为框架的数据库是______________;以模式为框架的数据库是______________;以物理模式为框架的数据库是______________。
6、主题在数据仓库中由一系列实现。
一个主题之下表的划分可按______、______数据所属时间段进行划分,主题在数据仓库中可用______方式进行存储,如果主题存储量大,为了提高处理效率可采用______方式进行存储。
7、关系代数运算中,基本的运算是______________、______________、______________、______________和______________。
8、在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SEL ECT语句中使用______保留字。
9、SQL语言的数据定义功能包括______、______、______和______。
10、在VB 6.0中,已经用Adobel连接到数据库,并已绑定到数据库中的某个关系表,现要通过此控件向表中插入数据,需要用到Adobel.Recordset的_____方法和Update方法,使用Adobel.Recordset的_____方法可以使当前行指针在结果集中向前移动一行。
数据结构试题及答案一、选择题(每题5分,共25分)1. 以下哪个数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 以下哪个操作的时间复杂度是O(1)?A. 在链表中插入一个元素B. 在数组中查找一个元素C. 在二叉搜索树中插入一个元素D. 在图中查找一个顶点的邻居答案:B3. 以下哪个数据结构是非线性结构?A. 栈B. 队列C. 数组D. 树答案:D4. 以下哪个操作不能在O(1)时间内完成?A. 删除链表的尾节点B. 删除数组的最后一个元素C. 删除二叉搜索树的最小值节点D. 删除图中任意两个顶点之间的边答案:D5. 以下哪个数据结构不具有后进先出(LIFO)的特点?A. 栈B. 队列C. 数组D. 链表答案:B二、填空题(每题5分,共25分)1. 在_________中,任何节点的两个子节点之间恰好有_________条边。
答案:树,02. 动态数组是_________数据结构,它可以在_________时间内改变其大小。
答案:线性,O(1)3. 栈和队列都是_________结构,它们都具有_________特点。
答案:线性,后进先出(LIFO)4. 哈希表是通过_________函数将键映射到_________上的数据结构。
答案:哈希,数组索引5. 在_________中,每个节点最多有_________个子节点。
答案:二叉树,2三、判断题(每题5分,共25分)1. 链表比数组更适合进行频繁的插入和删除操作。
()2. 深度优先搜索(DFS)和广度优先搜索(BFS)都可以用来遍历图。
()3. 堆是一种完全二叉树,且满足堆积的性质。
()4. 哈希表的查找时间复杂度为O(1)。
()5. 并查集是一种用于解决集合合并和查找问题的数据结构。
()四、简答题(每题10分,共30分)1. 简述二分搜索树(BST)的特点及其性质。
答案:二分搜索树是一种有序的二叉树,它的特点是:对于任意节点,其左子树上的所有节点的值都小于该节点的值,其右子树上的所有节点的值都大于该节点的值。
1.数据仓库:是一种新的数据处理体系结构,是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,为企业决策支持系统提供所需的集成信息。
2.孤立点:指数据库中包含的一些与数据的一般行为或模型不一致的异常数据。
3.OLAP:OLAP是在OLTP的基础上发展起来的,以数据仓库为基础的数据分析处理,是共享多维信息的快速分析,是被专门设计用于支持复杂的分析操作,侧重对分析人员和高层管理人员的决策支持。
4.粒度:指数据仓库的数据单位中保存数据细化或综合程度的级别。
粒度影响存放在数据仓库中的数据量的大小,同时影响数据仓库所能回答查询问题的细节程度。
5.数据规范化:指将数据按比例缩放(如更换大单位),使之落入一个特定的区域(如0-1)以提高数据挖掘效率的方法。
规范化的常用方法有:最大-最小规范化、零-均值规范化、小数定标规范化。
6.关联知识:是反映一个事件和其他事件之间依赖或相互关联的知识。
如果两项或多项属性之间存在关联,那么其中一项的属性值就可以依据其他属性值进行预测。
7.数据挖掘:从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
8.OLTP:OLTP为联机事务处理的缩写,OLAP是联机分析处理的缩写。
前者是以数据库为基础的,面对的是操作人员和低层管理人员,对基本数据进行查询和增、删、改等处理。
9.ROLAP:是基于关系数据库存储方式的,在这种结构中,多维数据被映像成二维关系表,通常采用星型或雪花型架构,由一个事实表和多个维度表构成。
10.MOLAP:是基于类似于“超立方”块的OLAP存储结构,由许多经压缩的、类似于多维数组的对象构成,并带有高度压缩的索引及指针结构,通过直接偏移计算进行存取。
11.数据归约:缩小数据的取值范围,使其更适合于数据挖掘算法的需要,并且能够得到和原始数据相同的分析结果。
12.广义知识:通过对大量数据的归纳、概括和抽象,提炼出带有普遍性的、概括性的描述统计的知识。
数据结构试题库及答案第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)11、抽象数据类型的三个组成部分分别为( A )。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型二、填空题三、综合题1、将数量级O(1),O(N),O(N2),O(N3),O(NLOG2N),O(LOG2N),O(2N)按增长率由小到大排序。
答案:O(1) O(log2N) O(N) O(Nlog2N) O(N2) O(N3) O(2N)一、填空题1. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
2. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
3. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引、散列。
9. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
二、单项选择题( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储三、简答题1.数据结构和数据类型两个概念之间有区别吗?答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。
数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
2. 简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、分析下面各程序段的时间复杂度Mn nn nn log3n五、设有数据逻辑结构S=(D,R ),试按各小题所给条件画出这些逻辑结构的图示,并确定其是哪种逻辑结构。
1. D={d1,d2,d3,d4} R={(d1,d2),(d2,d3),(d3,d4) }2. s=0;for (i=0; i<n; i++)for(j=0; j<n; j++) s+=B[i][j]; sum=s;1. for (i=0; i<n; i++) for (j=0; j<m; j++) A[i][j]=0; 3. x=0; for(i=1; i<n; i++) for (j=1; j<=n-i; j++) x++; 4. i=1;while(i<=n) i=i*3;2.D={d1,d2,…,d9}R={(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5), (d6,d7),(d8,d9) }3.D={d1,d2,…,d9}R={(d1,d3),(d1,d8),(d2,d3),(d2,d4),(d2,d5),(d3,d9), (d5,d6),(d8,d9),(d9,d7), (d4,d7), (d4,d6)}第二章线性表一、选择题1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度()。
A. O(log2n)B.O(1)C. O(n)D.O(n2)2、若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。
A. 顺序表B. 单链表C. 双链表D. 单循环链表7、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是( c )。
A. p->next=q;q->prior=p;p->next->prior=q;q->next=q;B. p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;C. q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;D. q->next=p->next;q->prior=p;p->next=q;p->next=q;10、线性表是n个()的有限序列。
A. 表元素B. 字符C. 数据元素D. 数据项11、从表中任一结点出发,都能扫描整个表的是()。
A. 单链表B. 顺序表C. 循环链表D. 静态链表12、在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为()。
A. O(n)B. O(1)C. O(n2)D. O(n-1)15、在线性表的下列存储结构中,读取元素花费的时间最少的是()。
A. 单链表B. 双链表C. 循环链表D. 顺序表16、在一个单链表中,若删除p所指向结点的后续结点,则执行()。
A. p->next=p->next->next;B. p=p->next;p->next=p->next->next;C. p =p->next;D. p=p->next->next;17、将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为()。
A. O(1)B. O(n)C. O(m)D. O(m+n)18、线性表的顺序存储结构是一种( a )存储结构。
NA. 随机存取B. 顺序存取C. 索引存取D. 散列存取19、顺序表中,插入一个元素所需移动的元素平均数是()。
A. (n-1)/2B. nC. n+1D. (n+1)/211、不带头结点的单链表head为空的判定条件是( b )。
A. head==NULLB. head->next==NULLC. head->next==headD. head!=NULL12、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是()。
A. 访问第i个元素的前驱(1<ni≤) B. 在第i个元素之后插入一个新元素(ni≤)1≤C. 删除第i个元素(n≤) D. 对顺序表中元素进行排序i1≤13、已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为( a )。
A. q->next=s->next;s->next=p;B. s->next=p;q->next=s->next;C. p->next=s->next;s->next=q;D. s->next=q;p->next=s->next;15、在表长为n的顺序表中,当在任何位置删除一个元素的概率相同时,删除一个元素所需移动的平均个数为( a )。
A. (n-1)/2B. n/2C. (n+1)/2D. n二、填空题1、设单链表的结点结构为(data,next)。
已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:;。
答案:q->next=p->next p->next=q3、写出带头结点的双向循环链表L为空表的条件。
答案:L->prior==L->next==L5、在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q = p->next;p->next=_ q->next ___;三、判断题3、用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。
x4、顺序存储方式只能用于存储线性结构。
5、在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理位置上不一定是相邻的。
6、链式存储的线性表可以随机存取。
四、程序分析填空题1、函数GetElem实现返回单链表的第i个元素,请在空格处将算法补充完整。
int GetElem(LinkList L,int i,Elemtype *e){LinkList p;int j;p=L->next;j=1;while(p&&j<i){p=p->next ;++j;}if(!p||j>i) return ERROR;*e= p->data ;return OK;}2、函数实现单链表的插入算法,请在空格处将算法补充完整。
int ListInsert(LinkList L,int i,ElemType e){LNode *p,*s;int j;p=L;j=0;while((p!=NULL)&&(j<i-1)){ p=p->next;j++;}if(p==NULL||j>i-1) return ERROR;s=(LNode *)malloc(sizeof(LNode));s->data=e;s->next=p->next ;p->next=s ;return OK;}/*ListInsert*/3、函数ListDelete_sq实现顺序表删除算法,请在空格处将算法补充完整。
int ListDelete_sq(Sqlist *L,int i){int k;if(i<1||i>L->length) return ERROR;for(k=i-1;k<L->length-1;k++)L->slist[k]= L->slist[k+1] ;--L->Length ;return OK;}4、函数实现单链表的删除算法,请在空格处将算法补充完整。
int ListDelete(LinkList L,int i,ElemType *s){LNode *p,*q;int j;p=L;j=0;while(( p->next!=NULL )&&(j<i-1)){p=p->next;j++;}if(p->next==NULL||j>i-1) return ERROR;q=p->next;p->next=q->next ;*s=q->data;free(q);return OK;}/*listDelete*/5、写出算法的功能。