2014浙江省数据结构与算法考试题库
2014年浙江省数据结构(C++)考试技巧与口诀
24、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
25、栈采用不同的存储方式时,下列关于出栈过程的叙述中,正确的是
37、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形 B.引用型
C.指针型 D.常值引用型?
38、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
A.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
17、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
27、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
(2)A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
36、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。
数据结构与算法分析考试试题
数据结构与算法分析考试试题一、选择题(共 20 小题,每小题 3 分,共 60 分)1、在一个具有 n 个元素的顺序表中,查找一个元素的平均时间复杂度为()A O(n)B O(logn)C O(nlogn)D O(n²)2、以下数据结构中,哪一个不是线性结构()A 栈B 队列C 二叉树D 线性表3、一个栈的入栈序列是 1,2,3,4,5,则栈的不可能的出栈序列是()A 5,4,3,2,1B 4,5,3,2,1C 4,3,5,1,2D 1,2,3,4,54、若一棵二叉树的先序遍历序列为 ABCDEFG,中序遍历序列为CBDAEGF,则其后序遍历序列为()A CDBGFEAB CDBFGEAC CDBAGFED BCDAGFE5、具有 n 个顶点的无向完全图的边数为()A n(n 1)B n(n 1) / 2C n(n + 1) / 2D n²6、以下排序算法中,在最坏情况下时间复杂度不是O(n²)的是()A 冒泡排序B 选择排序C 插入排序D 快速排序7、在一个长度为 n 的顺序表中,删除第 i 个元素(1≤i≤n)时,需要向前移动()个元素。
A n iB iC n i + 1D n i 18、对于一个具有 n 个顶点和 e 条边的有向图,其邻接表表示中,所有顶点的边表中边的总数为()A eB 2eC e/2D n(e 1)9、以下关于哈夫曼树的描述,错误的是()A 哈夫曼树是带权路径长度最短的二叉树B 哈夫曼树中没有度为 1 的节点C 哈夫曼树中两个权值最小的节点一定是兄弟节点D 哈夫曼树中每个节点的权值等于其左右子树权值之和10、用邻接矩阵存储一个具有 n 个顶点的无向图时,矩阵的大小为()A nB n²C (n 1)²D (n + 1)²11、下列关于堆的描述,正确的是()A 大根堆中,每个节点的值都大于其左右子节点的值B 小根堆中,每个节点的值都小于其左右子节点的值C 堆一定是完全二叉树D 以上都对12、在一个具有 n 个单元的顺序存储的循环队列中,假定 front 和rear 分别为队头指针和队尾指针,则判断队满的条件是()A (rear + 1) % n == frontB (front + 1) % n == rearC rear == frontD rear == 013、已知一个图的邻接表如下所示,从顶点 1 出发,按深度优先搜索法进行遍历,则得到的一种可能的顶点序列为()|顶点|邻接顶点|||||1|2, 3||2|4, 5||3|5||4|6||5|6||6| |A 1, 2, 4, 6, 5, 3B 1, 2, 5, 3, 4, 6C 1, 2, 3, 5, 4, 6D 1, 3, 2, 4, 5, 614、对线性表进行二分查找时,要求线性表必须()A 以顺序方式存储,且元素按值有序排列B 以顺序方式存储,且元素按值无序排列C 以链式方式存储,且元素按值有序排列D 以链式方式存储,且元素按值无序排列15、以下算法的时间复杂度为 O(nlogn)的是()A 顺序查找B 折半查找C 冒泡排序D 归并排序16、若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用()存储方式最节省时间。
2013-2014第二学期数据结构期末试卷A卷答案
合肥学院20 13 至20 14 学年第 2 学期数据结构与算法设计 课程考试( A )卷答案一、选择题:(2分×15=30分)1.A 2.D 3.B 4.B 5. C 6.D 7. A 8. B 9. D 10. B 11. D 12. D 13. A 14. A 15. A二、填空题:(2分×10=20分)1. n+1-i 2. s->next=p->next; p->next=s3. 12,24,35,27,18,26 4. A[i][j]=1 5. h6. ki<=k2i && ki<=k2i+17. mid=(low+high)/2; r[mid].key>k 8. 中序。
三、应用题:(5分×5=25分)1.树的链式存储结构(3分) 二叉树(2分)2.邻接矩阵:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡011110101110111010101110(3分)邻接表:(2分)3.(3分)(2分)4.(4分)E={(1,3),(1,2),(3,5),(5,6),(6,4)} (1分) 5、(5分)四、算法阅读题:(7分+5分=12分) 1、(1)查询链表的尾结点 (3分) (2)将第一个结点链接到链表的尾部,作为新的尾结点 (3分) (3)返回的线性表为(a2,a3,…,an,a1)。
(1) 2.递归地后序遍历链式存储的二叉树 (5分) 五、算法设计题:(7分+6分=13分) 1.void mergelklist(lklist *ha,lklist *hb,lklist *&hc)AB GC EH JF D Ilklist *s=hc=0; (2分)while(ha!=0 && hb!=0)if(ha->data<hb->data){if(s==0) hc=s=ha; else {s->next=ha; s=ha;};ha=ha->next;} else {if(s==0) hc=s=hb; else {s->next=hb; s=hb;};hb=hb->next;} (3分)if(ha==0) s->next=hb; else s->next=ha; (2分)}2.typedef struct node {int data; struct node *lchild,*rchild;} bitree; (2分)void swapbitree(bitree *bt){bitree *p;if(bt==0) return;swapbitree(bt->lchild); swapbitree(bt->rchild); (2分)p=bt->lchild; bt->lchild=bt->rchild; bt->rchild=p; (2分)}。
数据结构A卷(2014)
a)输入一个数列,以零为结束标志,按“先进先出”的方式生成单链表;
b)输出表中的节点;
c)逆置表中的节点,并输出逆置后表中的节点;
d)输出表中的节点,释放全部节点所占的空间。
例如:执行时输入1 2 3 4 0,其输出结果如下:
输出所有节点:1 2 3 4
逆序输出所有节点:4 3 2 1
9.两个串相等的充分必要条件是两个串的 且对应位置的 。
10.8层完全二叉树至少有 个节点,拥有100个节点的完全二叉树的最大层数为 。
11.采用顺序查找法查找长度为n的线性表,成功查找时的平均查找长度为。
12.设用希尔排序对数序{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称增量序列)依次是4、2、1,则排序需 ,写出第一趟结束后,数序中数据的排列次序为 。
q->next=L->next;
;
q=p;
}
printf(“逆序输出所有节点:”);
p=L->next; //输出表中的节点
while(p!=NULL)
{ printf(“%d”,p->data);
p=p->next; //沿next下移节点指针
}
printf(“\n”);
printf(“释放所有节点:\n”);
q=L->next;
while(q!=NULL)
{printf(“释放%d节点\n”,q->data);
p=q;
;
free(p);
}
printf(“释放头节点\n”);
free(L);
}
2.以下为二叉树中序遍历的递归算法和非递归算法。请将算法补充完整。
2014-2015学年第2学期算法与数据结构(AB)试题与标准答案
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}是否为堆?若不是,请将其调整为最小堆,并统计建堆过程中的交换次数。
数据结构与算法 试题及答案
绪论一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。
2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。
二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的(B )。
A、正确性B、有穷性C、确定性D、可行性2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。
A、正确性B、有穷性C、确定性D、可行性3、算法原则上都是能够有机器或人所完成的。
整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D)A、正确性B、有穷性C、确定性D、可行性三、简单题1、什么是数据结构?什么是算法?两者有什么关系?什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”两者有什么关系?算法与数据结构关系密切。
选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。
2、什么是复杂度和空间复杂度?时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。
3、数据的逻辑结构分几种?存储结构又有哪几种?数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构);数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。
有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。
线性表1、一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5 个元素的地址是( B)。
2014浙江省数据结构与算法考试技巧、答题原则
C)2,4,3,5,1,6 D)4,5,3,6,2,1
9、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
10、下面关于线性表的叙述中,错误的是哪一个?( D )
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
27、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
37、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
C)一个最大值 D)一个均方值
35、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
36、数据结构研究的内容是( D )。
A) (G) B) (D) C) C D) D
38、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
数据结构与算法题库(含参考答案)
数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。
B、创建一个 PowerPoint 演示文稿,然后批量插入图片。
C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。
D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。
正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。
则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。
则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。
则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。
数据结构-《数据结构与算法》试卷及答案【考试试卷答案】
《数据结构与算法》试卷A适用专业: 考试日期: 闭卷 所需时间:120分钟 总分:100分一、 选择题(每题1分, 共20题,总共20分)。
1.算法分析的目的是( ) A .辨别数据结构的合理性 B .评价算法的效率C .研究算法中输入与输出的关系D .鉴别算法的可读性2.在一个单链表HL 中,若要在当前由指针p 指向的结点后面插入一个由q 指向的结点,则执行如下( )语句序列。
A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?( )A. 在队列第i 个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。
A . 11 B.35 C. 19 D. 535.如下图所示的4棵二叉树中,( )不是完全二叉树。
6.下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。
B .线性表采用顺序存储,便于进行插入和删除操作。
C .线性表采用链接存储,不必占用一片连续的存储单元。
D .线性表采用链接存储,便于插入和删除操作。
7.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
A .单链表B .仅有头指针的单循环链表C .双链表D .仅有尾指针的单循环链表8. 若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n+1)。
A. O(0)B. O(1)C. O(n)D. O(n 2)9. 若已知一个栈的入栈序列是1,2,3,…,n ,其输出序列为p 1,p 2,p 3,…,p N ,若p N 是n ,则p i 是( )。
数据结构与算法练习题库(含答案)
数据结构与算法练习题库(含答案)一、单选题(共80题,每题1分,共80分)1、对一棵二叉树的结点从 1 开始顺序编号。
要求每个结点的编号大于其左子树所有结点的编号、但小于右子树中所有结点的编号。
可采用▁▁▁▁▁ 实现编号。
A、中序遍历B、先序遍历C、层次遍历D、后序遍历正确答案:A2、设一段文本中包含4个对象{a,b,c,d},其出现次数相应为{4,2,5,1},则该段文本的哈夫曼编码比采用等长方式的编码节省了多少位数?A、5B、4C、2D、0正确答案:C3、两个有相同键值的元素具有不同的散列地址A、一定不会B、一定会C、可能会D、有万分之一的可能会正确答案:C4、将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。
散列函数为:H(Key)=Key%11,采用线性探测法处理冲突。
问:当第一次发现有冲突时,散列表的装填因子大约是多少?A、0.73B、0.27C、0.64D、0.45正确答案:D5、对N个记录进行归并排序,归并趟数的数量级是:A、O(NlogN)B、O(logN)C、O(N)D、O(N2)正确答案:B6、下列说法不正确的是:A、图的遍历是从给定的源点出发每一个顶点仅被访问一次B、图的深度遍历不适用于有向图C、遍历的基本算法有两种:深度遍历和广度遍历D、图的深度遍历是一个递归过程正确答案:B7、二叉树的中序遍历也可以循环地完成。
给定循环中堆栈的操作序列如下(其中push为入栈,pop为出栈): push(1), push(2), push(3), pop(), push(4), pop(), pop(), push(5), pop(), pop(), push(6), pop()A、6是根结点B、2是4的父结点C、2和6是兄弟结点D、以上全不对正确答案:C8、设最小堆(小根堆)的层序遍历结果为{1, 3, 2, 5, 4, 7, 6}。
2014浙江省数据库期末考试深入
1、给出折半查找的递归算法,并给出算法时间复杂度性分析。
2、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。
所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序,注意在排序时若有元素移动,则与之相应的行中各元素也必须做相应变动。
void Translation(float *matrix,int n)//本算法对n×n的矩阵matrix,通过行变换,使其各行元素的平均值按递增排列。
{int i,j,k,l;float sum,min; //sum暂存各行元素之和float *p, *pi, *pk;for(i=0; i<n; i++){sum=0.0; pk=matrix+i*n; //pk指向矩阵各行第1个元素.for (j=0; j<n; j++){sum+=*(pk); pk++;} //求一行元素之和.*(p+i)=sum; //将一行元素之和存入一维数组.}//for ifor(i=0; i<n-1; i++) //用选择法对数组p进行排序{min=*(p+i); k=i; //初始设第i行元素之和最小.for(j=i+1;j<n;j++) if(p[j]<min) {k=j; min=p[j];} //记新的最小值及行号.if(i!=k) //若最小行不是当前行,要进行交换(行元素及行元素之和){pk=matrix+n*k; //pk指向第k行第1个元素.pi=matrix+n*i; //pi指向第i行第1个元素.for(j=0;j<n;j++) //交换两行中对应元素.{sum=*(pk+j); *(pk+j)=*(pi+j); *(pi+j)=sum;}sum=p[i]; p[i]=p[k]; p[k]=sum; //交换一维数组中元素之和.}//if}//for ifree(p); //释放p数组.}// Translation[算法分析] 算法中使用选择法排序,比较次数较多,但数据交换(移动)较少.若用其它排序方法,虽可减少比较次数,但数据移动会增多.算法时间复杂度为O(n2).3、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。
数据结构与算法笔试题及答案
数据结构与算法笔试题及答案1. 问题:什么是栈?请列举栈的应用场景,并举例说明。
答案:栈是一种具有特定插入和删除操作限制的线性数据结构。
栈遵循先入后出(LIFO)原则,即最后插入的元素最先删除。
栈的应用场景包括:- 表达式求值示例:对于表达式"3 + 5 * 2",可以将每个运算符和操作数都压入栈中,按照运算符的优先级进行计算。
- 函数调用示例:函数调用时,每个函数的局部变量和返回地址都可以存储在栈中,在函数返回时再依次弹出。
- 撤销操作示例:在图像编辑软件中,每次对图像进行修改时,可以将修改前的图像状态存储在栈中,撤销操作时便可以弹出最近的状态。
- 括号匹配示例:可以使用栈来判断表达式中的括号是否匹配,每次遇到左括号时压入栈中,遇到右括号时弹出栈顶元素并进行匹配。
2. 问题:请简述二叉树的定义,并介绍二叉树的遍历方式。
答案:二叉树是一种特殊的树型结构,其中每个节点最多有两个子节点。
二叉树的遍历方式包括:- 前序遍历(pre-order traversal):首先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。
- 中序遍历(in-order traversal):首先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。
- 后序遍历(post-order traversal):首先递归地遍历左子树,然后递归地遍历右子树,最后访问根节点。
- 层序遍历(level-order traversal):从上到下逐层访问二叉树的节点,同一层的节点按照从左到右的顺序访问。
3. 问题:请说明堆排序的基本思想及实现步骤。
答案:堆排序是一种基于比较的排序算法,其基本思想是通过构建二叉堆(大顶堆或小顶堆),然后依次将堆顶元素与最后一个元素交换,并进行调整,使得剩余元素满足堆的性质。
实现步骤如下:1. 构建堆:从最后一个非叶子节点开始,依次向上调整每个子树,使得每个子树都满足堆的性质。
2. 排序:将堆顶元素与最后一个元素交换,然后对剩余元素进行调整,重复此过程直到排序完成。
2014数据结构试题及答案
101. 【第1章绪论】一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为____O(n)____。
102. 【第1章绪论】数据的物理结构主要包括_____________和______________两种情况。
元素的表示,关系的表示103. 【第1章绪论】for(i=1,t=1,s=0;i<=n;i++) {t=t*i;s=s+t;}的时间复杂度为_________。
O(n)104.【第2章线性表】设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为_________________________________________________________(设结点中的两个指针域分别为llink和rlink)。
p>llink->rlink=p->rlink; p->rlink->llink=p->rlink105. 【第2章线性表】设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
M-1 ,(R-F+M)%M106. 【第2章线性表】设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
n+1-i ,n-i107. 【第2章线性表】设指针变量p指向单链表中结点A,指针变量s指向被插入的新结点X,则进行插入操作的语句序列为__________________________(设结点的指针域为next)。
s->next=p->next; p->next=s108.【第2章线性表】设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_____________________。
数据结构与算法习题含参考答案
数据结构与算法习题含参考答案一、单选题(共100题,每题1分,共100分)1、要为 Word 2010 格式的论文添加索引,如果索引项已经以表格形式保存在另一个 Word文档中,最快捷的操作方法是:A、在 Word 格式论文中,逐一标记索引项,然后插入索引B、直接将以表格形式保存在另一个 Word 文档中的索引项复制到 Word 格式论文中C、在 Word 格式论文中,使用自动插入索引功能,从另外保存 Word 索引项的文件中插D、在 Word 格式论文中,使用自动标记功能批量标记索引项,然后插入索引正确答案:D2、下面不属于计算机软件构成要素的是A、文档B、程序C、数据D、开发方法正确答案:D3、JAVA 属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D4、在 PowerPoint 演示文稿中,不可以使用的对象是:A、图片B、超链接C、视频D、书签第 6 组正确答案:D5、下列叙述中正确的是A、软件过程是软件开发过程和软件维护过程B、软件过程是软件开发过程C、软件过程是把输入转化为输出的一组彼此相关的资源和活动D、软件过程是软件维护过程正确答案:C6、在 Word 中,不能作为文本转换为表格的分隔符的是:A、@B、制表符C、段落标记D、##正确答案:D7、某企业为了建设一个可供客户在互联网上浏览的网站,需要申请一个:A、密码B、门牌号C、域名D、邮编正确答案:C8、面向对象方法中,将数据和操作置于对象的统一体中的实现方式是A、隐藏第 42 组B、抽象C、结合D、封装正确答案:D9、下面属于整数类 I 实例的是A、-919B、0.919C、919E+3D、919D-2正确答案:A10、定义课程的关系模式如下:Course (C#, Cn, Cr,prC1#, prC2#)(其属性分别为课程号、课程名、学分、先修课程号 1和先修课程号 2),并且不同课程可以同名,则该关系最高是A、BCNFB、2NFC、1NFD、3NF正确答案:A11、循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。
数据结构及算法试题
数据构造与算法试题一、单项选择题1、在数据构造的讨论中把数据构造从逻辑上分为〔C 〕A 部构造与外部构造B 静态构造与动态构造C 线性构造与非线性构造D 紧凑构造与非紧凑构造。
2、采用线性链表表示一个向量时,要求占用的存储空间地址〔D 〕A 必须是连续的B 局部地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为〔 D 〕。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,假设q结点是p结点的前驱结点,假设在q与p之间插入结点s,那么执行〔 D 〕。
A s→link = p→link;p→link = s;B p→link = s;s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用〔 C 〕方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做〔B〕。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,那么存放该数组至少需要的存储字数是〔 C 〕。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用〔 A 〕。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,那么出队列顺序为〔 C 〕。
10、在循环队列中用数组A[0..m-1]存放队列元素,其队头和队尾指针分别为front 和rear,那么当前队列中的元素个数是〔 D 〕。
A ( front - rear + 1) %mB ( rear - front + 1) %mC (front - rear + m) %mD ( rear - front + m) %m11、一个数组元素a[i]与〔 A 〕的表示等价。
数据结构与算法基础考试
数据结构与算法基础考试(答案见尾页)一、选择题1. 数据结构中,以下哪个是线性结构?A. 链表B. 栈C. 队列D. 二叉树2. 在算法分析中,以下哪个不是时间复杂度的组成部分?A. 时间复杂度B. 空间复杂度C. 时间步长D. 平均时间复杂度3. 以下哪个排序算法的时间复杂度为O(n^)?A. 快速排序B. 归并排序C. 堆排序D. 插入排序4. 在计算机中,以下哪种数据结构可以最有效地进行字符串匹配?A. 数组B. 链表C. 栈D. 哈希表5. 以下哪个图算法用于寻找最短路径?A. 拉普拉斯矩阵B. 关联矩阵C. 迪杰斯特拉算法D. A*搜索算法6. 以下哪个数据结构可以用来实现栈和队列?A. 数组B. 链表C. 栈D. 哈希表7. 在机器学习中,以下哪种算法属于监督学习?A. 决策树B. 聚类C. 逻辑回归D. 神经网络8. 以下哪个算法用于解决整数分解问题?A. RSA加密B. Diffie-Hellman密钥交换C. 数字签名D. ElGamal加密9. 在数据库管理中,以下哪个概念与数据的物理存储无关?A. 表空间B. 水平分割C. 垂直分割D. 存储过程10. 以下哪个编程语言不适合初学者学习数据结构和算法?A. PythonB. JavaC. C++D. JavaScript11. 什么是数据结构?请列举几种常见的数据结构,并简要描述它们的特点。
B. 链表C. 栈D. 队列E. 图12. 算法的时间复杂度是如何衡量的?请举例说明不同时间复杂度的算法。
A. O(1)B. O(log n)C. O(n)D. O(n^2)E. O(2^n)13. 什么是递归?请列举两种递归的例子,并解释它们如何工作。
A. 汉诺塔问题B. 二分查找C. 幂运算D. 斐波那契数列E. 求最大公约数14. 什么是栈?请列举栈的基本操作,并说明它们是如何实现的。
A. 后进先出(LIFO)B. 先进先出(FIFO)C. 帧栈D. 递归E. LIFO15. 什么是队列?请列举队列的基本操作,并说明它们是如何实现的。
数据结构与算法期末样题2014-7
上海应用技术学院20013—2014学年第2学期《数据结构与算法》期末(样)题一、选择题(2%*10=20%)1.在一个以head为头结点指针的非空单循环链表中,指针p指向链尾结点的条件是(D )A.p - > data = - 1 B.p - > next = NULLC.p - > next - > next=headD.p - > next = head2.无论待排序列是否有序,排序算法时间复杂度都是O(n2)的排序方法是( C )A.快速排序B.归并排序C.冒泡排序D.直接选择排序3.已知二叉排序树G,要输出其结点的有序序列,则采用的遍历方法是(C )A.按层遍历B.前序遍历C.中序遍历D.后序遍历二、填空题(2%*9=18%)1.在数据的逻辑结构和存储结构中,与计算机无关的是__逻辑结构____。
2.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是___(n-1)/2___。
线性表L=(a1, a2, ..., an)用数组表示,假定删除表中任一元素的概率相同,则插入一个元素平均需要移动元素的_n/2__3.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为。
三、算法应用题(共42%)1.设散列函数为H (key)=key %11,散列地址空间为0··10,对关键字序列(27,13,55,32,18,49,24,38,43)用线性探查法解决冲突,构建散列表。
现已有前4个关键字构建的散列表如下所示,请将剩余5个关键字填入表中相应的位置。
2.已知一棵二叉树的前序遍历和中序遍历序列分别为:ABCDEFG和CBDAEGF,请画出此二叉树,并给出后序遍历序列。
3.已知如图所示的带权无向图,请画出用普里姆算法从顶点1开始的最小生成树的构造过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21、下列各种数据结构中属于线性结构的有( A )。
A)栈 B) 二叉树
C) 广义表 D) 图
22、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
28、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 Biblioteka D)链队列 29、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。
C)空表 D)((a,b),(c,d))
35、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e
36、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为( B )。
C)部分地址必须是连续 D)必须是不连续的
15、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
16、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)4 B)5
C)6 D)7
6、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
12、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A ) 。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
25、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)40
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
3、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
4、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
5、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p
A)front=front->next; B) rear=rear->next;
C) rear=front->next; D) front=rear->next ;
37、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)3 B)4 C)5 D)1
17、栈进行插入和删除操作的特点是( A )。
A)LIFO B)FIFO
C)FCFS D)HPF
18、在数据结构中,从逻辑上可以把数据结构分为( C )。
1、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
2、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
D)Head(Tail(Head(Tail(Tail(L)))))
32、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
33、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
24、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
26、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
27、采用链结构存储线性表时,其地址( B )。
A)top不变 B)top=0 C)top-- D)top++
38、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A ) 。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p
30、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
A)top不变 B)top=0 C)top-- D)top++
23、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
13、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
14、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
9、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
19、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
31、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
20、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
39、下列各种数据结构中属于线性结构的有( A )。
A)栈 B) 二叉树
C) 广义表 D) 图
11、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p
34、广义表head(((a,b),(c,d)))的运算结果为( A )。
A)(a,b) B)(c,d)
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
10、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为( B )。
A)front=front->next; B) rear=rear->next;
C) rear=front->next; D) front=rear->next ;
40、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。