数据结构复习题-第1章答案2014-5-16
- 格式:doc
- 大小:73.50 KB
- 文档页数:7
一、单项选择题(本大题共71小题,每小题2分,共142分)1、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基准而得到的第一次划分结果为()。
()A.{38,46,79,56,40,84}B.{38,79,56,46,40,84}C.{40,38,46,56,79,84}D.{38,46,56,79,40,84}标准答案:C2、广义表((a),a)的表头是()。
()A.aB.bC.(a)D.((a))标准答案:C3、数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是()。
()A.80B.100C.240D.270标准答案:C4、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
()A.HL=p;p->next=HL;B.p->next=HL;HL=p;C.p->next=HL;p=HL;D.p->next=HL->next;HL->next=p;标准答案:B5、一个具有n个顶点的无向完全图的边数为()。
()A.(n+1)/2B.n(n-1)/2C.n(n-1)D.n(n+1)标准答案:B6、如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。
下列选项中,()就是不稳定的排序方法。
()A.起泡排序B.归并排序C.直接插入法排序D.简单选择排序标准答案:D7、按照二叉树的定义,具有3个结点的二叉树有()种。
()A.3B.4C.5D.6标准答案:C8、设有1000个元素,用二分法查找时,最大比较次数是()。
()A.1B.7C.10D.25标准答案:C9、树适合用来表示()。
()A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据标准答案:C10、设有两个串p和q,求p在q中首次出现的位置的运算称作()。
数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
(题)数据结构复习题Ch3链表一、选择题(共18题,11道算法设计题)1、设单链表中结点的结构为(data, link)。
已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?(1) s->link = p->link; p->link = s;(3) p->link = s->link; s->link = p;Key:(2)2、设单链表中结点的结构为(data, link)。
已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作?(1) s->link = p;p->link = s;(2) s->link = p->link;p->link = s;(4) p->link = s;s->link = p;(2) q->link = s; s->link = p;(4) p->link = s; s->link = q;(3) s->link = p->link; p = s;Key:(2)3、设单链表中结点的结构为(data, link)。
若想摘除结点*p的直接后继,则应执行下列哪一个操作?(2) p = p->link; p->link = p->link->link;(4) p = p->link->link;(1) p->link = p->link->link;(3) p->link = p->link;Key:(1)4、设单循环链表中结点的结构为(data, link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。
若想删除链表第一个结点,则应执行下列哪一个操作?(1) s = rear; rear = rear->link; free(s);(2) rear = rear->link;free(rear);(3) rear = rear->link->link; free(rear);(4) s = rear->link->link; rear->link->link = s->link; free(s);1Key:(4)5、设双向循环链表中结点的结构为(data, prior, next),且不带表头结点。
第一章——计算机网络概述一、填空题1.计算机网络的网络资源包括________、________和________。
2.1969年12月,Internet的前身________的投入运行,标志着计算机网络的兴起。
3.国际标准化组织(英文简称____)在1984年正式颁布了________________使计算机网络体系结构实现了标准化。
4.________________是计算机网络最基本的功能之一。
5.计算机网络是________技术与________技术结合的产物。
6.Internet的应用有________、信息发布、电子商务、远程音频、视频应用。
7.计算机网络是由________系统和________系统构成的;从逻辑功能上看,则是由________和________组成的;从拓扑结构看是由一些________和________构成的。
8.________________又称网络单元,一般可分为三类:________、________和________。
9.________是指两个网络节点之间承载信息和数据的线路,可分为______________和____________。
10.__________提供访问网络和处理数据的能力,由主机系统、终端控制器和终端组成;__________是计算机网络中负责数据通信的部分,主要完成数据的传输、交换以及通信控制,由________、________组成。
11.网络硬件系统是指构成计算机网络的硬件设备,包括各种____________、_______及________;网络软件主要包括____________、____________和____________。
12.__________是计算机网络的主体,按其在网络中的用途和功能的不同,可分为________和________两大类。
13.____________是网络中用户使用的计算机设备,又称______;____________是通过网络操作系统为网上工作站提供服务及共享资源的计算机设备。
复习题集一判断题()1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。
()2. 抽象数据类型与计算机内部表示和实现无关。
()3. 线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。
()4. 链表的每个结点中都恰好包含一个指针。
()5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
()6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
()7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
()8. 线性表在物理存储空间中也一定是连续的。
()9. 顺序存储方式只能用于存储线性结构。
()10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
()11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
()12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
()13.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
()14.二叉树的度为2。
()15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
()16.二叉树中每个结点的两棵子树的高度差等于1。
()17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
()18.具有12个结点的完全二叉树有5个度为2的结点。
()19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。
()20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。
()21.计算机处理的对象可以分为数据和非数据两大类。
()22.数据的逻辑结构与各数据元素在计算机中如何存储有关。
()23.算法必须用程序语言来书写。
()24.判断某个算法是否容易阅读是算法分析的任务之一。
试卷代号:1252中央广播电视大学2013-2014学年度第一学期“开放学科”期末考试数据结构(本)试题2014年1月一、单项选择题(每小题2分,共30分)1. 在数据结构和算法中,与所使用的计算机有关的是(B)。
A.数据元数间的抽象关系 B.数据的存储结构C.算法的时间复杂度 D.数据的逻辑结构2.对顺序表,以下叙述中正确的是 ( A )。
A.用一组地址连续的存储单元依次存放线性表的数据元素B.各个数据元素的首地址是连续的C.数据元素不能随机访问D.插入操作不需要移动元素3.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为(C)。
A.9 B.10 C.15 D.164. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( A)。
A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p ;5.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的可能输出序列是(A)。
(进栈出栈可以交替进行)。
A.7,5,3,1 B.7,3,1,5C.7,5,1,3 D.5,1,3,76.对一个栈顶指针为top的链栈进行进栈操作,设P为待进栈的结点,则执行(C)。
A.p=top->next; top=top next; B.p->next=top;C.p->next=top;top=p; D.top=p;7.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第33号元素对应于矩阵中的元素是(D)。
(矩阵中的第1个元素是a1,1)A.a7,6 B.a10,8C.a9,2 D.a8,58.设有一个17阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,6在一维数组B中的下标是(C)。
2014-2015学年第2学期考试试题(A)卷课程名称算法与数据结构任课教师签名出题教师签名审题教师签名考试方式(闭)卷适用专业信息与计算机考试时间(120)分钟一、单项选择题(每小题4分,共20分)1、算法的时间复杂度与()有关。
(A) 问题规模(B) 计算机硬件性能(C) 编译程序质量(D) 程序设计语言2、线性表的链式存储结构与顺序存储结构相比的优点是()。
(A) 所有的操作算法实现简单(B) 便于随机存取(C) 便于插入和删除操作的实现(D) 便于利用零散的存储器空间3、设10个元素进栈序列是1,2,…,10,其输出序列是a1,a2,…,a10,如果a1=3,则a2的值为()。
(A) 一定是2 (B) 一定是1(C) 不可能是4 (D) 不可能是14、设高度为h的二叉树上只有度为0和度为2的结点(假设仅含根结点的二叉树的高度为1),则此二叉树所包含的结点数至多有()。
(A) 2h-1 (B) 2h - 1(C) 2h+1 (D) 2h + 15、设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有()个结点。
(A) 13 (B) 12(C) 26 (D) 25二、填空题(每小题2分,共10分)1、把一个递归过程转换成一个等价的非递归过程,通常使用()。
2、数据的逻辑结构是从逻辑上描述数据,它与数据的()无关,是独立于计算机的。
3、在单链表中,结点与结点之间的逻辑关系不是通过存储单元的顺序来表示的,而是通过()来实现的。
4、实现动态分配和动态回收一个结点空间的两个标准过程是()和()。
三、名词解释(每小题5分,共10分)1、线性表2、哈希函数四、简答题(每小题5分,共10分)1、简述顺序表和链表的优缺点。
2、举例说明直接选择排序方法是一种不稳定的排序方法。
五、应用题(每小题6分,共30分)1、关键字序列{12,7,18,13,17,29,34,6,8}是否为堆?若不是,请将其调整为最小堆,并统计建堆过程中的交换次数。
《数据结构》考研真题及解答目录2009 年试题 (1)填空题 (1)解答题 (2)2010 年试题 (2)填空题 (2)解答题 (4)2011 年试题 (4)填空题 (4)解答题 (5)2012 年试题 (6)填空题 (6)解答题 (7)2013 年试题 (8)填空题 (8)解答题 (9)2014 年试题 (10)填空题 (10)解答题 (11)2015 年试题 (12)填空题 (12)解答题 (14)2009 年试题填空题1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S。
若每个元素出栈后立即进入队列 Q,且7 个元素出队的顺序是 bdcfeag,则栈 S 的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。
设 N 代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为 3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第 6 层(设根为第 1 层)有8 个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是I.父子关系II.兄弟关系III.u 的父结点与v 的父结点是兄弟关系A.只有IIB.I 和IIC.I 和IIID.I、II 和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I 和IID.I 和III8.下列叙述中,不符合 m 阶B 树定义要求的是A.根节点最多有m 棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序解答题41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
7数据结构复习题一、填空题(1)若已知一个栈的输入序列为1 ,2, 3 ,...n ,其输出序列为p1,p2,p3,....pn。
若p1=n,则pi为n-i+1。
(2) 在单循环链表中,指针p 所指结点为最后一个结点的条件是p->link==first。
(3)具有32有结点的完全二叉树的深度为 6 。
(4) L是带有头结点的单链表的头指针,第一个元素结点的指针是 first 。
(5)从逻辑关系上讲,数据结构主要分为两大类,它们是线性结构和非线性结构。
(6)有序表中元素为1,2,3,4,5,6,7,8,9.11采用二分查找方法进行查找,共有 2 个元素的查找长度为2。
(7)从无向图中的某个顶点出发,进行一次广度优先搜索,即可访问图的每个顶点,则该图一定是连通图。
(8)归并排序的时间复杂性为O(nlog2n)。
(9) 在一个长度为n的顺序表中删除第m个元素时,需向前移动n-m个元素。
(10) 多维数组实际上是由__一维数组的扩展实现的。
(11) 链接存储的特点是利用__指针___来表示数据元素之间的逻辑关系。
(12) 后缀表达式“4 5 * 3 2 + -”的值为__ 15______。
(14) 一个算法的复杂性可分为_ 时间 ___复杂性和空间复杂性。
(16) 在一棵树中,叶结点没有后继结点。
(17)(18) 在单链表中,指针p 所指结点为最后一个结点的条件是p->next=NULL。
(19) 栈是一种限定在表的一端进行插入和删除的线性表,又被称为后进先出的线性表。
(20) 设图G=(V,E),V={1,2,3,4}, E={<1,2>,<1,3>,<2,4>,<3,4>,<2,3>},从顶点1出发,对图G进行广度优先搜索的序列有___2 __种。
(21)已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有_____ 12_______ 个叶子的结点。
沈阳师范大学教育技术学院862计算机学科专业基础综合(数据结构、操作系统)历年考研真题汇编附答案最新资料,WORD格式,可编辑修改!目录第一部分沈阳师范大学教育技术学院862计算机学科专业基础综合(数据结构、操作系统)历年考研真题汇编......................................................................2014年沈阳师范大学教育技术学院867计算机学科专业基础综合(数据结构、操作系统)考研真题........................................................................2013年沈阳师范大学教育技术学院867计算机学科专业基础综合(数据结构、操作系统)考研真题........................................................................ 第二部分全国硕士研究生入学统一考试408计算机学科专业基础综合历年真题及详解........2012年全国硕士研究生入学统一考试408计算机学科专业基础综合真题..................2012年全国硕士研究生入学统一考试408计算机学科专业基础综合真题及详解............2011年全国硕士研究生入学统一考试408计算机学科专业基础综合真题..................2011年全国硕士研究生入学统一考试408计算机学科专业基础综合真题及详解............2010年全国硕士研究生入学统一考试408计算机学科专业基础综合真题..................2010年全国硕士研究生入学统一考试408计算机学科专业基础综合真题及详解............2009年全国硕士研究生入学统一考试408计算机学科专业基础综合真题..................2009年全国硕士研究生入学统一考试408计算机学科专业基础综合真题及详解............说明:沈阳师范大学2012年之前参加全国统考408计算机学科专业基础综合,2013年开始自主命题,科目改为867计算机学科专业基础综合(数据结构、操作系统),2015年科目代码改为862。
《数据结构》复习资料一单选题 (共48题,总分值0分 )1. 设用链表作为栈的存储结构,则退栈操作(0 分)A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别2. 下面关于m阶B树说法正确的是()。
①每个结点至少有两棵非空子树;②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。
(0 分)A. ①②③B. ②③C. ②③④D. ③3. 下列关于文件的说法,错误的是()。
(0 分)A. 选择文件的组织方式时应考虑外存的性质和容量B. 不定长文件指的是总长度可变的文件C. 对文件的操作主要是维护和检索D. 文件的存储结构指的是文件在外存上的组织方式4. 设无向图的顶点个数为n,则该图最多有()条边。
(0 分)A. n-1B. n(n-1)/2C. n(n+1)/2D. n25. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
(0 分)A. bB. cC. (c)D. (c,d,e)6. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
(0 分)A. 688B. 678C. 692D. 6967. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为(0 分)A. nB. eC. 2nD. 2e8. 广义表(a,(b,(),c))的深度为()。
(0 分)A. 1B. 2C. 3D. 49. 设有向图G中有五个顶点,各顶点的度分别为3、2、2、1、2,则G中弧数为()。
(0 分)A. 4条B. 5条C. 6条D. 无法确定10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(0 分)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,311. 具有n个顶点的有向强连通图最少有()条弧。
2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷)一、应用题(3小题,共24分)1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。
【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。
其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。
2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。
【解答】H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2采用链地址法处理冲突,得到的开散列表如下:平均查找长度=(1×7+2×4+3×1)/12=18/123.分析下面各程序段的时间复杂度(1)s1(int n){ int p=1,s=0;for (i=1;i<=n;i++){ p*=i;s+=p; }return(s);} ——O(n)(2)s2(int n)x=0;y=0;For (k=1;k<=n;k++) x++;For (i=1;i<=n;i++)For (j=1;j<=n;j++)y++; ——O(n2)1.下述算法的功能是什么?(1)(1)返回结点*p的直接前趋结点地址。
《数据结构》程序填空复习题说明:本文档中涉及到的算法并非本书的全部,有些可根据此处的情况自行看书和作业题,黑色为综合练习上的题目,红色为我另增加的题,这些空的选择是根据我个人的经验来决定的并不能完全代表中央电大的出卷老师,因此一定不能有肯定就考这些题目的想法。
不能放弃其他容的复习,切记!!!一、线性表1.设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。
#define NULL 0void main( ){NODE a,b,c,d,*head,*p;a.data=6;b.data=10;c.data=16;d.data=4; /*d是尾结点*/head= (1);a.next=&b;b.next=&c;c.next=&d;(2); /*以上结束建表过程*/p=head; /*p为工作指针,准备输出链表*/do{printf(“%d\n”, (3));(4);}while( (5));}答案:(1)&a(2)d next=NULL(3)p->data(4)p=p->next(5)p!=NULL2. 以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,struct node{ int data;struct node *next;};typedefstruct node NODEint delete(NODE *head,int i){NODE *p,*q;int j;q=head;j=0;while((q!=NULL)&&( ___(1)_____)){___(2)_____;j++;}if(q==NULL)return(0);p= ___(3)_____;___(4)_____=p->next;free(___(5)_____);return(1);}答案:(1)j<i-1(2)q=q->next(3)q->next(4)q->next(5)p3.将新元素插入到线性表中的第i位,MAX是数组的个数,a[0]用以存放线性表长度,b存放待插入的元素值,i存放插入的位置,n存放线性表长度{int a[MAX];int i,j,b,n;scanf(“%d%d%d”,&b,&i,&n);for(j=1;j<=n;j++)scanf(“%d”,&a[j]);a[0]=n;for(j=n; (1);j- -)(2);(3);(4);for(j=1;j<=a[0];j++)printf(“%5d\n”,a[j]);}答案:(1)j>=i(2)a[j+1]=a[j](3)a[i]=b(4)a[0]=n+14.用头插法建立带头结点且有n个结点的单向链表的算法NODE *create(n){NODE *head,*p,*q;int ip=(NODE *)malloc(sizeof(NODE));(1);(2);(3);for(i=1;i<=n;i++){p=(NODE *)malloc(sizeof(NODE));p->data=i;if(i==1)(4);else{(5);(6);}}return(head);}答案:(1)head=p(2)p->next=NULL(3)q=p(4)p->next=NULL(5)p->next=q->next(6)q->next=p一、栈1. 以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node{ ElemType data;struct node *next;};struct node *top ;void Push(ElemType x){struct node *p;p=(struct node*)malloc(___(1)_____);p->data=x;___(2)_____;}答案:(1)sizeof (struct node)(2)p->next=top(3)top=p二、队列1. 以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;void InQueue(ElemType x){struct node *p;p= (struct node*) ___(1)_____;p->data=x;p->next=NULL;___(2)_____;rear= ___(3)_____;}答案:(1)malloc(sizeof (struct node))(2)rear->next=p(3)p2. 以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由x返回,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;ElemType OutQueue(){ElemType x;if(___(1)_____) {printf("队列下溢错误!\n");exit(1);}else {struct node *p=front->next;x=p->data;front->next= ___(2)_____;if(p->next==NULL) rear=front;free(p);___(3)_____;}}答案:(1)front= =rear(2)p->next(3)return(x)三、树1.以下程序是先序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
第6章树和二叉树一、选择题(每小题1分,共10分)1.以下数据结构中,( A )是非线性数据结构。
A.树B.线性表C.队列D.栈2.在一棵二叉树中第五层上的结点数最多为( B )。
A.8B.15C.16D.323. 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( A )。
A. CBEFDAB. FEDCBAC. CBEDFAD. 不定4.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B )。
A.9B.11C.15D.不确定5.给定二叉树如图所示。
设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为3,7,5,6,1,2,4,则其遍历方式是(D )。
A. LRNB. NRLC. RLND. RNL6.在下列存储形式中,哪一个不是树的存储形式?( D )A.双亲表示法B.孩子表示法C.孩子兄弟表示法D.顺序存储表示法7.有n个叶子的哈夫曼树的结点总数为(D )。
A.不确定B.2n C.2n+1 D.2n-18.设i为n个结点的完全二叉树结点编号,i=1,2,3...n;若i≤(n-1)/2时,结点i的右孩子为( B )A.2iB.2i+1C.2i-1D.i+19. 由分别带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为( C )。
A.23B.37C.44D.4610.一棵具有n个结点的完全二叉树的树高度(深度)是( A )。
A. +1B. log2n+1C.D. log2n-111.由权值分别为7,9,4,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( B )。
A.36B.60C.48D.5312.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( B )。
A. 24B. 71C. 48D. 5313.具有35个结点的完全二叉树的深度为( B )。
数据库系统包括题⽬和答案数据库系统原理复习题第1章⼀、选择题1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。
A. DBS包括DB和DBMSB. DBMS包括DB和DBSC. DB包括DBS和DBMSD. DBS就是DB,也就是DBMS2.概念模型是现实世界的第⼀层抽象,这⼀类模型中最着名的模型是(D )。
A.层次模型B. 关系模型C. ⽹状模型D. 实体-联系模型3.⽬前,数据库管理系统最常⽤的逻辑数据模型是( C)。
A.⽹状模型 B.层次模型C.关系模型 D.⾯向对象模型4.下列四项中,不属于数据库系统特点的是( C)。
A.数据共享B. 数据完整性C. 数据冗余度⾼D. 数据独⽴性⾼5.数据模型的三个要素分别是(B )。
A.实体完整性、参照完整性、⽤户⾃定义完整性B.数据结构、数据操作、数据完整性约束条件C.插⼊数据、修改数据、删除数据D.外模式、模式、内模式6.数据库三级结构从内到外的3个层次依次为(B)。
A.外模式、模式、内模式B. 内模式、模式、外模式C. 模式、外模式、内模式D. 内模式、外模式、模式7.下列关于数据库系统的正确叙述是(A):A.数据库系统减少了数据冗余B.数据库系统避免了⼀切冗余C.数据库系统中数据的⼀致性是指数据类型的⼀致D.数据库系统⽐⽂件系统能管理更多的数据8.数据的逻辑独⽴性是指(B)。
A.外模式改变时保持应⽤程序不变B.模式改变时保持外模式不变C.内模式改变时保持模式不变D.数据改变时保持应⽤程序不变9.数据的物理独⽴性是指(C)。
A.外模式改变时保持应⽤程序不变B.模式改变时保持外模式不变C.内模式改变时保持模式不变D.数据改变时保持应⽤程序不变10.公司有多个部门和多名职员,每个职员只能属于⼀个部门,⼀个部门可以有多名职员,从部门到职员的联系类型是(D)。
A.多对多B. ⼀对⼀C. 多对⼀D. ⼀对多11.储蓄所有多个储户,储户在多个储蓄所之间存款,储户与储蓄所之间是(C)。
数据结构练习题第一章绪论一.选择题1、在数据结构的讨论中把数据结构从逻辑上分为()。
A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构2、采用线性链表表示一个向量时,要求占用的存储空间地址()。
A: 必须是连续的 B 部分地址必须是连续的C: 一定是不连续的C: 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。
A: n B: n/2 C: (n-1)/2 D: (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。
A: s→next = p→next;p→next = s; B: p→next= s; s→next = q;C: p→next = s→next;s→next = p;D: q→next= s;s→next= p;8.下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)9.执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/2二.填空题1.通常,评价一个算法有正确性、健壮性、_________、时间复杂度、空间复杂度五个方面。
2.在数据结构中,数据的逻辑结构有线性结构、图结构、________________、_______________四种,物理实现上有顺序结构、索引结构、___________、_____________四种。
第三章线性表一.选择题1.在一个单链表HL中,若要向q所指结点之后插入一个指针p指向的结点,则执行.A. HL=p; p->next=HLB. P->next=HL; HL=pC. P->next=q->next; q->next=pD. P->next=q->next; q=p->next2.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移个元素。
第1章绪论一、选择题(每小题2分,共20分)1.以下哪一个不是算法的特性()。
A.有穷性B.确定性C.简洁性D.可行性2.数据结构的定义为(D,S),其中D是( )的集合。
A. 算法B. 数据元素C. 数据操作D. 逻辑结构3.设n是描述问题规模的非负整数,下面程序片段的时间复杂度是()。
x=2;while(x<n/2) x=2*x ;A. O(log2n)B. O(n)C. O(nlog2n)D. O(n2)4.执行下面程序段时,执行S语句的次数为().for (int i=1;i<=n;i++)for (int j=1; j<=i; j++) S;A. n²B. n²/2C. n(n+1)D. n(n+1)/25.在下面的程序段中,对x的赋值语句的频度为()。
for(i=1;i<=n;i++)for(j=1;j<=n;j++) x=x+1;A. O(2n)B. O(n)C. O(n2)D. O(log2n)6.在数据结构的讨论中把数据结构从逻辑上分为()。
A. 内部结构与外部结构B. 静态结构与动态结构C. 线性结构与非线性结构D. 紧凑结构与非紧凑结构。
7.下面程序段的时间复杂度为( C )for (int i=0 ;i<m ;i++)for (int j=0 ;j<n ;j++) a[i][j]=i*j ;A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)8.算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度9.数据结构在计算机内存中的表示是指()。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系10.在数据结构中,与所使用的计算机无关的是数据的()结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理11.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法12.在决定选取何种存储结构时,一般不考虑()。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
13.算法分析的目的是(),算法分析的两个主要方面是()。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 D.分析算法的易读性和文档性(2 )A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性15.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。
A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等16.以下说法正确的是()。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构二、判断题(每小题1分,共10分)1.数据元素是数据的最小单位。
()2.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
()3.数据的逻辑结构是指数据的各数据项之间的逻辑关系。
()4.算法的优劣与算法描述语言无关,但与所用计算机有关。
()5.数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。
( )6.在决定选取何种存储结构时,一般不考虑各结点的值如何。
()7.抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。
( )8.抽象数据类型与计算机内部表示和实现无关。
()9.顺序存储结构只能用于线性结构,不能用于非线性型结构。
()10.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
()11.在数据结构的讨论中把数据结构从逻辑上分为内部结构与外部结构。
()12.数据项是数据的基本单位。
()三、填空题(每空1分,共10分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.根据数据元素之间的关系不同,通常有以下四种结构,、、和网状结构。
3.数据的物理结构主要有_____________和______________两种不同的表示方法。
4.数据元素之间的关系在计算机中有两种不同的表示方法:和5.算法的5个重要特性是_________、__________、__________、输入和输出。
6. 一个算法的效率可分为效率和效率。
7.下面程序段的时间复杂度是。
for (i=0 ;i<n ;i++)for(j=0 ;j<m ;j++) A[i][j]=0 ;8.下面程序段的时间复杂度是_______。
for (i=0 ;i<n;i++)for (j=0 ;j<n ;j++) s+=B[i][j] ;9.数据结构中评价算法的两个重要指标是算法的__________ 和__________ 。
10.计算机执行下面的语句时,语句s的执行次数为 _______。
FOR(i=l;i<n-l;i++)FOR(j=n ;j>=i ;j--)s ;11.数据结构是研讨数据的__________和__________,以及它们之间的相互关系,并对与这种结构定义相应的__________,设计出相应的__________。
12.数据的物理结构包括_________的表示和_________的表示。
13.一个算法具有5个特性: __________、__________、__________,有零个或多个输入、有一个或多个输出。
14.抽象数据类型的定义仅取决于它的一组_________,而与_________无关,即不论其内部结构如何变化,只要它的__________不变,都不影响其外部使用。
15.一个数据结构在计算机中_________称为存储结构。
16.在有n个选手参加的单循环赛中,总共将进行______场比赛。
17.对于给定的n个元素,可以构造出的逻辑结构有_______,_______,_______,______四种。
18.数据的逻辑结构是指_________________________________________________________。
参考题:20.下面程序段的时间复杂度为________。
(n>1) 答案O(n)sum=1;for (i=0 ;sum<n ;i++) sum+=1 ;21.下面程序段的时间复杂度是( O(log3n) )。
i = 0 ;while (i<=n )i = i * 3 ;22.设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。
例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整int f(m,n)int m,n;{ if(m==1)return __(1)___;if(n==1){return __(2)___;}if(m<n){return f(m,m);}if (m==n){return 1+__(3)___;}return f(m.n-1)+f(m-n,___(4)___);}②执行程序,f(6,4)=_______。
答案①(1)1 (2)1 (3)f(m,n-1) (4)n ②923.下面程序段的时间复杂度为________。
(n>1) 答案O(n)sum=1;for (i=0;sum<n;i++) sum+=1;24.下面程序段中带有下划线的语句的执行次数的数量级是_______。
答案log2n2i:=n*n WHILE i<>1 DO i:=i_div_2;25.下面程序段中带下划线的语句的执行次数的数量级是_______。
答案nlog2ni:=1;WHILE i<n BEGIN FOR j:=1 TO n DO_x:=x+1;i:=i*2 END;26.下面程序段中带下划线的语句的执行次数的数量级是:_________答案log2ni:=1;WHILE i<n DO i:=i*2;25.在下面的程序段中,对x的赋值语句的频度为______(表示为n的函数)。
答案1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3)FOR i:=1TO n DOFOR j:=1TO i DOFOR k:=1 TO j DOx:=x+delta;27.已知如下程序段FOR i:= n DOWNTO 1 DO {语句1}BEGINx:=x+1;{语句2}FOR j:=n DOWNTO i DO {语句3}y:=y+1; {语句4}END;语句1执行的频度为__________;语句2执行的频度为__________;语句3执行的频度为__________;语句4执行的频度为___________。
答案n+1 n n(n+3)/2 n(n+1)/2。
四、简答题(共10分)1.什么是算法? 算法的5个特性是什么? 试根据这些特性解释算法与程序的区别。
2.数据的逻辑结构分为线性结构和非线性结构两大类。
线性结构包括线性表、栈、队列、数组等;非线性结构包括树、图等;这两类结构各自的特点是什么?3.简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。
参考题:4.试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别?答案简单来说,数据结构定义了一组按某些关系结合在一起的数据元素;抽象数据类型是指一个数学模型以及定义在该模型上的一组操作;而程序设计语言中的数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
5.算法的时间复杂度仅与问题的规模相关吗?答案不是,事实上,算法的时间复杂度不仅与问题的规模相关,还与输入实例中的元素取值等相关,但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。
我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。
6.常用的存储表示方法有哪几种?答案常用的存储表示方法有四种:顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构。
链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。