数据结构作业答案
数据结构作业题及参考答案
东北农业大学网络教育学院数据结构作业题(一)一、选择题(每题2分,共20分)1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。
A、O(n)B、O (n/2)C、O (1)D、O (n2)2.带头结点的单链表first为空的判定条件是()。
A、first == NULL;B、first->link == NULL;C、first->link == first;D、first != NULL;3.在一棵树中,()没有前驱结点。
A、分支结点B、叶结点C、树根结点D、空结点4.在有向图中每个顶点的度等于该顶点的()。
A、入度B、出度C、入度与出度之和D、入度与出度之差5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为()的值除以9。
A、20B、18C、25D、226.下列程序段的时间复杂度为()。
s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A、O (1)B、O (n)C、O (2n)D、O (n2)7.栈是一种操作受限的线性结构,其操作的主要特征是()。
A、先进先出B、后进先出C、进优于出D、出优于进8.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为()。
A、(rear-front-1)%nB、(rear-front)%nC、(front-rear+1)%nD、(rear-front+n)%n9.高度为5的完全二叉树中含有的结点数至少为()。
A、16B、17C、31D、3210.如图所示有向图的一个拓扑序列是( )A、ABCDEFB、FCBEADC、FEDCBAD、DAEBCF二、填空题(每空1分,共20分)1.n (n﹥0) 个顶点的无向图最多有条边,最少有条边。
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)
第1章4.答案:(1)顺序存储结构顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。
(2)链式存储结构顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。
但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。
所以链式存储结构通常借助于程序设计语言的指针类型来描述。
5. 选择题(1)~(6):CCBDDA6.(1)O(1) (2)O(m*n) (3)O(n2)(4)O(log3n) (5)O(n2) (6)O(n)第2章1.选择题(1)~(5):BABAD (6)~(10):BCABD (11)~(15):CDDAC 2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。
要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。
表中不允许有重复的数据。
[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。
如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。
当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。
void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){//合并链表La和Lb,合并后的新表使用头指针Lc指向pa=La->next; pb=Lb->next;//pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点Lc=pc=La; //用La的头结点作为Lc的头结点while(pa && pb){ if(pa->data<pb->data){pc->next=pa; pc=pa; pa=pa->next;}//取较小者La中的元素,将pa链接在pc的后面,pa指针后移else if(pa->data>pb->data) {pc->next=pb; pc=pb; pb=pb->next;}//取较小者Lb中的元素,将pb链接在pc的后面,pb指针后移else //相等时取La中的元素,删除Lb中的元素{pc->next=pa;pc=pa;pa=pa->next;q=pb->next; delete pb ; pb =q;}}pc->next=pa?pa:pb; //插入剩余段delete Lb; //释放Lb的头结点}(5)设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。
3.数据结构作业答案第3章--第3章栈和队列自测卷答案作业答案
head第3章 栈和队列 自测卷答案 姓名 班级一、填空题(每空1分,共15分)1. 【李春葆】向量、栈和队列都是 线性 结构,可以在向量的 任何 位置插入和删除元素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队首 删除元素。
2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 栈顶 。
不允许插入和删除运算的一端称为 栈底 。
3. 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。
4. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
(注:不一定,这是一种约定,在殷教材中是队首指针指向队列的首元素位置)5. 在具有n 个单元的循环队列中,队满时共有 n-1 个元素。
6. 向栈中压入元素的操作是先 移动栈顶指针 ,后 存入元素 。
7. 从循环队列中删除一个元素时,其操作是 先 移动队首指针 ,后 取出元素 。
(注:不一定,这是一种约定,在殷教材中是先 取出元素 ,后移动队首指针 )8. 〖00年统考题〗带表头结点的空循环双向链表的长度等于 0 。
解:二、判断正误(判断下列概念的正确性,并作出简要的说明。
)(每小题1分,共10分) ( × )1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。
( × )2. 在表结构中最常用的是线性表,栈和队列不太常用。
错,不一定吧调用子程序或函数常用,CPU 中也用队列。
( √ )3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。
(×)5. 栈和链表是两种不同的数据结构。
错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。
数据结构》作业题答案
参考答案第一章、绪论一、选择题1 B;2 A; 3 B;4 C ;5 C; 6 B;7 C;8 C;9 D;10 B。
二、填空题1、存储;2、无,1,无,1;3、前驱,1,后继,任意多个;4、一对一,一对多,多对多;5、时间复杂度,空间复杂度;6、集合,线性结构,树形结构,图形结构;7、顺序结构,链式结构,索引结构,散列结构;8、顺序。
三、问答题与算法题1、3 ;2、T1 ( n ) = 5n 2 -O ( n ) ; T2 ( n ) = 3 n 2 + O ( n ) ; T3 ( n ) = 8 n 2 + O(log n) ;T4 ( n ) = 1.5 n 2 + O ( n ) 。
T4 ( n ) 较优,T3 ( n )较劣。
3、见课本。
第二章线性表一、选择题1C;2A;3D;4B;5D;6B;7C;8B;9A;10C;11D;12D;13C;14C.二、填空题1、O ( 1 ), O ( n );2、单链表,双链表;3、地址,指针;4、4,2;5、便于访问尾结点和头结点;6、前驱;7、L->next== L且L->prior== L;8、顺序。
三、问答题与算法题1、头指针:结点或头结点的指针变量。
其作用是存放第一个结点或头结点的地址,从头指针出发可以找到链表中所有结点的信息。
头结点:是附加在链表的第一个结点之前的一个特殊结点,其数据域一般不存放信息。
其作用是为了简化运算,将空表与非空表统一起来,将第一个结点与其他结点的处理统一起来。
首结点:是链表的第一个结点。
2、(1)基于空间的考虑。
当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。
(2)基于时间的考虑。
若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。
数据结构作业题目答案
数据结构作业题⽬答案⼀、单择题1.栈和队列的共同特点是(A)。
A.只允许在端点处插⼊和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.⼆叉树的第k层的结点数最多为(2的k-1次⽅)。
A.2k-1B.2K+1C.2K-1D. 2k-13.数据结构中,从逻辑上可以把数据结构分成(C)。
A.动态结构和静态结构B.进凑结构和⾮进凑结构C.线性结构和⾮线性结构D.内部结构和外部结构4.设⼆叉树的先序遍历序列和后序遍历序列正好相反,则该⼆树满⾜的条件是(全部是左⼦树或全部是右⼦树 CD )。
A.空或只有⼀个结点B.⾼度等于其结点数C.任⼀结点⽆左孩⼦D.任⼀结点⽆右孩⼦5.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( A )个元素。
A. n-iB. n+l -iC.n-1-iD. i6.判定⼀个栈ST(最多元素为m0)为空的条件是(B)。
A.ST→TOP!=0B.ST→TOP==0C.ST→TOP!=m0D.ST→TOP==m0B7. ⾮空的循环单链表head的尾结点(由P所指向)满⾜( C )。
A.p->next=NULLB.p=NULLC.p->next=headD.p=head8.在线性结构中,所有结点都有( B )个直接后继。
A.0B.0或1C.1D.不确定9.设数组A[m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执⾏⼊队操作时修改指针的语句是。
A、sq.front=(sq.front+1)%mB、sq.front=(sq.front+1)%(m+1)C、sq.rear=(sq.rear+1)%mD、sq.rear=(sq.rear+1)%(m+1)⼆、填空题1.已知⼀棵⼆叉树的中序序列和后序序列分别为:DBGEACHF和DGEBHFCA,则该⼆叉树的前序序列是( ABDECFH )。
2.在( 循环 )链表中,从任何⼀结点出发都能访问到表中的所有结点。
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)【第一章绪论】1. 数据结构是计算机科学中的重要基础知识,它研究的是如何组织和存储数据,以及如何通过高效的算法进行数据的操作和处理。
本章主要介绍了数据结构的基本概念和发展历程。
【第二章线性表】1. 线性表是由一组数据元素组成的数据结构,它的特点是元素之间存在着一对一的线性关系。
本章主要介绍了线性表的顺序存储结构和链式存储结构,以及它们的操作和应用。
【第三章栈与队列】1. 栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作。
本章主要介绍了栈的顺序存储结构和链式存储结构,以及栈的应用场景。
2. 队列也是一种特殊的线性表,它的特点是只能在表的一端进行插入操作,而在另一端进行删除操作。
本章主要介绍了队列的顺序存储结构和链式存储结构,以及队列的应用场景。
【第四章串】1. 串是由零个或多个字符组成的有限序列,它是一种线性表的特例。
本章主要介绍了串的存储结构和基本操作,以及串的模式匹配算法。
【第五章数组与广义表】1. 数组是一种线性表的顺序存储结构,它的特点是所有元素都具有相同数据类型。
本章主要介绍了一维数组和多维数组的存储结构和基本操作,以及广义表的概念和表示方法。
【第六章树与二叉树】1. 树是一种非线性的数据结构,它的特点是一个节点可以有多个子节点。
本章主要介绍了树的基本概念和属性,以及树的存储结构和遍历算法。
2. 二叉树是一种特殊的树,它的每个节点最多只有两个子节点。
本章主要介绍了二叉树的存储结构和遍历算法,以及一些特殊的二叉树。
【第七章图】1. 图是一种非线性的数据结构,它由顶点集合和边集合组成。
本章主要介绍了图的基本概念和属性,以及图的存储结构和遍历算法。
【总结】1. 数据结构是计算机科学中非常重要的一门基础课程,它关注的是如何高效地组织和存储数据,以及如何通过算法进行数据的操作和处理。
本文对《数据结构》第二版严蔚敏的课后习题作业提供了参考答案,涵盖了第1-7章的内容。
大工15秋《数据结构》在线作业1满分答案
大工15秋《数据结构》在线作业1满分答案大工15秋《数据结构》在线作业1一单选题1.广义表((e))的表头是()。
A. eB. (e)C. ()D. (())正确答案:B2.在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改()个指针域的值。
A. 1B. 2C. 3D. 4正确答案:B3.在一个长度为n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为()。
A. (n+1)/2B. n/2C. nD. n+1正确答案:C4.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。
A. head==NULLB. head→next==NULLC. head→next==headD. head!=NULL正确答案:B5.一个顺序栈S,元素a,b,c,d,e依次进栈,如果5个元素的出栈顺序为b,e,d,c,a,则顺序栈的容量至少应为()。
A. 2B. 3C. 4D. 5正确答案:C6.在表长为n的顺序表中,若在每个位置插入数据元素的概率相等,插入一个数据元素平均需要移动()个数据元素。
A. (n-1)/2B. n/2C. n-1D. n正确答案:B7.广义表L=(a,(b,c)),进行Tail(L)操作后的结果为()。
A. cB. b,cC.(b,c)D.((b,c))正确答案:D8.表达式a*(b+c)-d的后缀表达式是()。
A. abcd*+-B. abc+*d-C. abc*+d-D. -+*abcd精确谜底:B9.在一个单链表中,删除*p结点之后的一个结点的操作是()。
A. p->next=p;B. p->next->next=p->next;C. p->next->next=p;D. p->next=p->next->next;精确谜底:D10.最大容量为n的轮回行列,队尾指针是rear,队头是front,则队空的条件是()。
大工19春《数据结构》在线作业1【答案】
大工19春《数据结构》在线作业1【答案】大工19春《数据结构》在线作业1以下选项属于非线性结构的是()。
A.广义表B.队列C.优先队列D.栈正确答案:A在存储数据时,通常不仅需要存储数据元素的值,还要存储()。
A.数据元素的类型B.数据的基本运算C.数据元素之间的关系D.数据的存取方式正确答案:C以下选项属于逻辑结构的是()。
A.顺序表B.散列表C.有序表D.单链表正确答案:C一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分正确答案:B算法的时间复杂度与()有关。
A.问题规模B.计算机硬件的运行速度C.源程序的长度D.编译后执行程序的质量正确谜底:A静态链表与静态链表比拟较,其缺点是()。
A.插入和删除需移动较多半据B.有大概浪费较多存储空间C.不能随机存取D.以上都不是正确谜底:B链式栈和顺序栈相比,有一个比较明显的优点,即()。
A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便正确谜底:B链式栈的栈顶在链表的()位置。
A.链头B.链尾C.链中D.随便正确谜底:A栈和行列具有相同的()。
A.逻辑结构B.存储布局C.存取点D.运算正确答案:A计较机操作系统为了实现历程办理,采用了多种历程调度战略,先来先服务的战略使用了()作为算法实现的基础。
A.栈B.队列C.优先行列D.双端行列正确谜底:B数据元素是数据的最小单位。
T.对F.错正确谜底:B数据布局是指相互之间存在一种或多种干系的数据元素的部分。
T.对F.错正确谜底:B从逻辑干系上讲,数据布局主要分为线性布局和非线性布局两大类。
T.对F.错正确谜底:A算法不能没有输出,但可以没有输入。
T.对F.错正确谜底:B同一个算法,实现语言级别越高,算法执行的效率越低。
T.对F.错正确谜底:A算法中语句执行的频度就是算法的时间复杂度。
T.对F.错正确答案:B顺序表的主要缺点是实现线性表的插入或删除可能移动很多元素。
数据结构作业答案(大连理工大学)
作业1. 线性表编程作业:1.将顺序表逆置,要求用最少的附加空间。
参考答案#include <>#include <>#include <>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct{ ElemType *elem;int length;int listsize;}SqList;立单链表");printf("2.取元素值");printf("3.查找\n");printf("4.插入");printf("5.删除");printf("6.显示\n");printf("7.删除大于mink且小于maxk的元素值");printf("8.就地升序排序\n");printf("9.就地逆置");printf("a.有序表插入");printf("q.退出\n");printf("\n请选择操作:");fflush(stdin);scanf("%c",&choice);switch(choice){case '1': printf("请输入单链表中结点个数:");scanf("%d",&n);Create_L2(L,n);break;case '2': printf("请输入元素位序:");scanf("%d",&i);GetElem_L(L,i,e);printf("元素值为:%d\n",e);break;case '3': printf("请输入要查找的元素:");scanf("%d",&e);if(dlbcz(L,e))printf("查找成功!");elseprintf("查找失败。
[答案][北京语言大学]2020秋《数据结构》作业4
1.下列四种排序中()的空间复杂度最大。
[答案:D]A.插入排序B.冒泡排序C.堆排序D.归并排序2.在一个图中所有顶点的度数之和等于所有边数的()倍。
[答案:B]A.1/2B.2C.1D.43.顺序查找法适合于存储结构为()的线性表。
[答案:B]A.散列存储B.顺序存储或链式存储C.压缩存储D.索引存储4.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
[答案:B]A.24B.71C.48D.535.下列说法中,不正确的是()。
[答案:D]A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可由若干个数据元素构成D.数据项可由若干个数据元素构成6.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。
[答案:A]A.3B.4C.5D.87.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。
[答案:D]A.单链表B.双链表C.单循环链表D.顺序表8.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
[答案:B]A.2m-1B.2mC.2m+1D.4m9.线性表的链接实现有利于()运算。
[答案:A]A.插入B.读表元C.查找D.定位10.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。
[答案:D]A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表11.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
[答案:C]A.9B.10C.11D.1212.若有18个元素的有序表存放在一堆数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A3的比较序列的下标依次为()。
[答案:D]A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,313.若已知一个栈序列是1,2,3,...,n,其输出序列为p1,p2,p3,...,pn,若p1=n,则pi为()。
数据结构作业及答案
第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的1以及它们之间的2和运算等的学科。
1 A.数据元素 B.计算方法 C.逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2.数据结构被形式地定义为(K, R),其中K是1的有限集,R是K上的2有限集。
1 A.算法 B.数据元素 C.数据操作 D.逻辑结构2 A.操作 B.映像 C.存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构的顺序存储结构是一种1的存储结构,线性表的链式存储结构是一种2的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取5.算法分析的目的是1,算法分析的两个主要方面其一是指2,其二是指正确性和简单性。
1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.研究算法中的输入和输出的关系C.可读性和文档性D.数据复杂性和程序复杂性k6.计算机算法指的是1,它必须具备输入、输出和2等5个特性。
1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。
A.正确 B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。
A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。
A.线性表的存储结构优于链式存储结构 B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。
《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)
第1章4.答案:(1)顺序存储结构顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。
(2)链式存储结构顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。
但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。
所以链式存储结构通常借助于程序设计语言的指针类型来描述。
5. 选择题(1)~(6):CCBDDA\6.(1)O(1) (2)O(m*n) (3)O(n2)(4)O(log3n) (5)O(n2) (6)O(n)(第2章1.选择题(1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC\2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。
要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。
表中不允许有重复的数据。
[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。
如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。
当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。
void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){法设计题(1)将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。
当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。
两个栈均从两端向中间增长。
试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。
数据结构题及参考答案
数据结构作业题作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为( c )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2. 链表不具有的特点是( b )A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为( d )。
For(i=1;i<=n;i++)For(j=1;j<=I;j++)For(k=1;k<=j;k++)X=x+1;A.O(1) B.O(n)C.O(n²) D.O(n³)4.在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(c)个指针域的值。
A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是( b )。
A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是(b)。
A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( a )。
A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D. rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作(c)。
A.连接 B.求子串C.模式匹配 D.判子串9、设串S1='ABCDEFG',S2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串S的的从序号i的字符开始的j个字符组成的子串,len(s)返回串S的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是( d )。
数据结构(本)形考作业及答案
1.数据结构中,与所使用的计算机无关的是数据的(B)。
选择一项:A. 物理和存储结构B. 逻辑结构C. 物理结构D. 存储结构2.组成数据的基本单位是(B)。
选择一项:A. 数据类型B. 数据变量C. 数据元素D. 数据项3.研究数据结构就是研究(D)。
选择一项:A. 数据的逻辑结构B. 数据的逻辑结构和存储结构C. 数据的存储结构D. 数据的逻辑结构和存储结构以及其数据在运算上的实现4.在数据结构中,从逻辑上可以把数据结构分成(A)。
选择一项:A. 线性结构和非线性结构B. 动态结构和静态结构C. 内部结构和外部结构D. 紧凑结构和非紧凑结构5.数据结构是一门研究计算机中(B)对象及其关系的科学。
选择一项:A. 数值运算B. 非数值运算C. 非集合D. 集合6.下列说法不正确的是(C )。
选择一项:A. 数据元素是数据的基本单位B. 数据项是数据中不可分割的最小可标识单位C. 数据项可由若干个数据元素构成D. 数据可由若干个数据元素构成7.设有如下遗产继承规则:丈夫和妻子可以互相继承遗产,子女可以继承父亲和母亲的遗产,子女间不能相互继承,则表示该遗产继承关系最合适的数据结构应该是(D)结构。
选择一项:A. 线性B. 集合C. 树形D. 图状8.算法的时间复杂度与(B)有关。
A. 所使用的计算机B. 算法本身C. 算法的程序设计D. 数据结构9.算法分析的两个主要方面是(C)。
选择一项:A. 数据复杂性和程序复杂性B. 正确性和简明性C. 时间复杂性和空间复杂性D. 可读性和文档性10.数据的存储结构包括数据元素的表示和(B)。
选择一项:A. 相关算法B. 数据元素间关系的表示C. 数据处理的方法D. 数据元素的类型11.数据元素是数据的最小单位(错)。
选择一项:对错12.数据的逻辑结构是指数据的各数据项之间的逻辑关系(错)。
对错13.算法的优劣与算法描述语言无关,但与所用计算机有关(错)。
选择一项:对错14.算法是在数据结构的基础上对特定问题求解步骤的一种描述,也是若干条指令组成的优先序列(对)。
数据结构作业答案
1:41.如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。
()就是不稳定的排序方法。
1.起泡排序2.归并排序3.直接插入法排序4.简单选择排序2:8 带头结点的单链表head为空的判断条件是( )。
1.head==NULL2.head->next==NULL3. head->next==head4. head!=NULL3:9 在单链表中增加头结点的目的是为了( )。
1.方便运算的实现2.用于标识单链表3.使单链表中至少有一个结点4.用于标识起始结点的位置4:46 下列四个关键字序列中,( )不是堆。
1. {05,23,16,68,94,72,71,73}2.{05,16,23,68,94,72,71,73}3. {05,23,16,73,94,72,71,68}4.{05,23,16,68,73,71,72,94}5:20.设输入序列为1,2,3,4,5,借助一个栈可以得到的输出序列是( )。
1.2,4,1,3,52.3,4,1,5,23.3,2,4,1,54.4,1,3,2,56:50 对有n个记录的表按记录键值有序建立二叉排序树,在这种情况下,其平均查找长度的量级为()。
1.O(n)2.O(nlog2n)3.O(1)4. O(log2n)7:37.用分划交换排序方法对包含有n个关键的序列进行排序,最坏情况下执行的时间杂度为( )。
1.O(n)2. O(log2n)3.O(nlog2n)4. O(n2)8:38.邻接表的存储结构下图的深度优先遍历类似于二叉树(树)的( )。
1.先序遍历2.中序遍历3.后序遍历4.按层遍历9:48 对有n个记录的有序表采用二分查找,其平均查找长度的量级为()。
1. O(log2n)2.O(nlog2n)3.O(n)4. O(n2)10:2 线性表是具有n个( )的有限序列。
1.表元素2.字符3.数据元素4.信息项11:15 在一个单链表中,若删除(*p)结点的后继结点,则执行( )。
数据结构作业解答
第一章作业一、选择题1. 算法的计算量的大小称为计算的( B )。
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于( C)A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是( B )。
A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.5. 下面关于算法说法错误的是( D )A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( A )(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.在下面的程序段中,对x的赋值语句的频度为( c )FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)9.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOif A[j]>A[j+1]A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是(D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2)二、判断题1. 数据元素是数据的最小单位。
数据结构作业答案
数据结构作业答案单选题1、下列关于算法的基本特征,说法不正确的是()。
能行性是算法中的每一个步骤必须能够实现且能达到预期的目的。
算法的确定性是指算法中的每一个步骤必须是有明确的定义,不允许模棱两可。
算法的有穷性是指算法必须能在有限的时间内做完。
算法与提供情报无关。
[D] 教师批改:D2、算法的时间复杂度取决于()。
问题的规模待处理的数据的初态问题的难度 A 和 B[D] 教师批改:D3、下列选项中,不是算法基本特征的是()。
可行性有穷性确定性高效率[D] 教师批改:D4、通常一个好的算法应达到的目标中,不包括()。
正确性可读性技巧性健壮性[C] 教师批改:C5、在一般的计算机系统中,基本的运算和操作不包括()。
语法处理算术运算关系运算数据传输[A] 教师批改:A6、工程上常用的分治法是()。
列举法归纳法减半递推技术回溯法[C] 教师批改:C多选题7、算法设计的要求包括()。
正确性可读性健壮性唯一性[ABC] 教师批改:A,B,C8、算法的时间复杂度应该与()无关。
所使用的计算机程序设计语言基本运算的执行次数程序编制者[ABD] 教师批改:A,B,D9、下列关于算法的描述中,不正确的有()。
算法即是计算机程序算法是解决问题的计算方法算法是排序方法算法是解决问题的有限运算序列[ABC] 教师批改:A,B,C填空题16、所谓算法是指()。
教师批改:解题方案的准确而完整的描述17、算法的基本特征有()、()、()和()教师批改:能行性、确定性、有穷性和拥有足够的情报。
18、一个算法通常由两种基本要素组成,它们是()和()。
教师批改:算法中对数据的运算和操作。
算法的控制结构。
19、工程上常用的几种算法设计方法有列举法、()、()、()、()和回溯法。
教师批改:归纳法、递推、递归、减半递推技术。
20、算法的复杂度主要包括()复杂度和()复杂度。
教师批改:时间、空间综合题21、设给定3个整数a,b,c,试写出寻找这3个整数的中数的算法;并分析在平均情况与最坏情况下,该算法分别要做多少次比较?寻找这3个整数的中数的算法用C语言描述如下(中数m由函数值返回):int mid ( int a, int b, int c){ int m ; m=a ;if ( m>=b ) { if (m>=c) { if ( b>=c ) m=b ; else m=c ; } }else { if ( m<=c) { if (b>=c) m=c; else m=b ; } }return ( m ) ;}假设a,b,c中的每一个数为中数的概率相等(均为1/3)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章单选题1、下列关于算法的基本特征,说法不正确的是()。
能行性是算法中的每一个步骤必须能够实现且能达到预期的目的。
算法的确定性是指算法中的每一个步骤必须是有明确的定义,不允许模棱两可。
算法的有穷性是指算法必须能在有限的时间内做完。
算法与提供情报无关。
[D] 教师批改:D2、算法的时间复杂度取决于()。
问题的规模待处理的数据的初态问题的难度 A 和 B[D] 教师批改:D3、下列选项中,不是算法基本特征的是()。
可行性有穷性确定性高效率[D] 教师批改:D4、通常一个好的算法应达到的目标中,不包括()。
正确性可读性技巧性健壮性[C] 教师批改:C5、在一般的计算机系统中,基本的运算和操作不包括()。
语法处理算术运算关系运算数据传输[A] 教师批改:A6、工程上常用的分治法是()。
列举法归纳法减半递推技术回溯法[C] 教师批改:C多选题7、算法设计的要求包括()。
正确性可读性健壮性唯一性[ABC] 教师批改:A,B,C8、算法的时间复杂度应该与()无关。
所使用的计算机程序设计语言基本运算的执行次数程序编制者[ABD] 教师批改:A,B,D9、下列关于算法的描述中,不正确的有()。
算法即是计算机程序算法是解决问题的计算方法算法是排序方法算法是解决问题的有限运算序列[ABC] 教师批改:A,B,C填空题16、所谓算法是指()。
教师批改:解题方案的准确而完整的描述17、算法的基本特征有()、()、()和()教师批改:能行性、确定性、有穷性和拥有足够的情报。
18、一个算法通常由两种基本要素组成,它们是()和()。
教师批改:算法中对数据的运算和操作。
算法的控制结构。
19、工程上常用的几种算法设计方法有列举法、()、()、()、()和回溯法。
教师批改:归纳法、递推、递归、减半递推技术。
20、算法的复杂度主要包括()复杂度和()复杂度。
教师批改:时间、空间综合题21、设给定3个整数a,b,c,试写出寻找这3个整数的中数的算法;并分析在平均情况与最坏情况下,该算法分别要做多少次比较?寻找这3个整数的中数的算法用C语言描述如下(中数m由函数值返回):int mid ( int a, int b, int c){ int m ; m=a ;if ( m>=b ) { if (m>=c) { if ( b>=c ) m=b ; else m=c ; } }else { if ( m<=c) { if (b>=c) m=c; else m=b ; } }return ( m ) ;}假设a,b,c中的每一个数为中数的概率相等(均为1/3)。
由于当a为中数时需要比较2次,b或c为中数时均需要比较3次,因此,在平均情况下上述算法所需要的比较次数为2*(1/3)+3*(1/3)+3*(1/3)= 8/3即在平均情况下,上述算法需要比较8/3次。
在最坏情况下,上述算法需要比较3次(当b或c为中数时)。
第二章选择题1、下列排序方法中,哪一个是稳定的排序方法()。
归并排序稀尔排序堆排序快速排序[A] 教师批改:A2、设输入序列为1,2,3,4,借助一个栈得到的输出序列可以是()。
3,4,1,2 4,2,1,34,1,2,3 1,3,4,2[D] 教师批改:D3、用数组A[m]存放循环队列的元素值,若其头尾指针分别为front和rear,则循环队列中当前元素的个数为()。
(rear+front)%m (rear-front+m)%m(rear-front)%m (rear-front+1)%m[D] 教师批改:B4、对于下三角矩阵A,若采用一个一维数组B以行为主顺序存放压缩矩阵A,则A43存放在()中. B7 B8B9 B10[C] 教师批改:C5、深度为5的二叉树至多有()个结点。
16 3231 10[C] 教师批改:C6、一个有n个顶点的无向图最多有()条边。
n n(n-1)n(n-1)/2 2n[C] 教师批改:C7、下列说法不正确的是()。
线性表可以顺序存储线性表可以链式存储线性表在顺序存储下可以对分查找线性表在链式存储下可以对分查找[D] 教师批改:D8、栈和队列的共同点是()。
都是先进后出都是先进先出只允许在端点处插入和删除元素没有共同点[C] 教师批改:C9、若进栈序列为A、B、C、D(进栈过程可以出栈),不可能得到的出栈序列是()。
A、D、C、B B、C、D、AC、A、D、B C、D、B、A[C] 教师批改:C10、在一个单链表中,若p结点不是最后一结点。
在p结点之后插入s结点的正确操作是()。
s->next=p; p->next=s; s->next=p->next ; p->next=s;s->next=p; p=p; p->next=s; s->next=p;[B] 教师批改:B11、由3个结点可以构造出多少种不同的二叉树()。
2 45 8[C] 教师批改:C填空题27、若一棵完全二叉树共有100个结点,则其叶子结点数为()。
教师批改:5028、在单链表中设置(表)头结点的作用是()。
教师批改:简化插入,删除算法,方便运算的实现。
29、结点最少的树为(),结点最少的二叉树为()。
教师批改:只有一个(根)结点的树。
空的二叉树。
34、在一棵二叉树中有30个叶子结点,仅有一个孩子的结点有20个,则该二叉树结点数为()。
教师批改:7935、在线性表的散列存储中,处理冲突有()和()两种方法。
教师批改:拉链法、开地址法36、已知一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG和DECBHGFA,试写出其前序遍历序列。
教师批改:前序遍历:ABCDEFGH30、数据的()结构与数据元素本身的内容、形式、个数和相对位置无关。
教师批改:逻辑31、数据的存储结构有四种基本的存储映射方式:顺序、()、索引和()存储方式。
教师批改:链式、散列32、用顺序方法将完全二叉树的结点逐层存放在数组A[1]~A[n]中,若结点A[i] 有右子女,则右子女是结点为()。
教师批改:A[2*i+1]33、设有二维数组A4×6,其中每个元素占两个字节,数组按列优先顺序存储,第一个元素a11的存储地址为100,那么元素a43的存储地址为()。
教师批改:122综合题37、什么叫数据结构?数据结构对算法有什么影响?数据结构是指相互有关联的数据元素的集合。
因此,一个数据结构既要反映数据元素的信息,又要反映数据元素之间的关系。
数据元素之间的关系可以是逻辑关系(通常用前后件关系来表示),也可以是数据元素在计算机中的存储位置。
反映数据元素之间逻辑关系的数据结构称为数据的逻辑结构。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,又称为数据的物理结构。
同一批数据元素的集合,采用不同的数据结构(特别是存储结构),其数据处理的效率是不一样的,主要体现在算法的时间复杂度与空间复杂度方面。
比如:若只是对2~3个数进行排序,则用几个IF语句即可完成;而若对一般情况下的N个数进行排序,则要使用数组,通过(双重等)循环来完成。
38、试写出在顺序存储结构下逆转线性表的算法,要求使用最少的附加空间顺序存储结构下逆转线性表的算法用C语言描述如下(其中ET为数据元素的类型):void invsl ( int n , ET a [ ] ){ int k ; ET t ;for ( k=0 ; k<n/2 ; k + + ){ t=a[k]; a[k]=a[n-1-k]; a[n-1-k]=t; }return ;}39、设循环队列的容量为70(序号为1~70),现经过一系列的入队与退队运算后,有:(1)front=14,rear=21。
(2)front=23,rear=12。
问在这两种情况下,循环队列中各有多少个元素?设循环队列的容量为M。
如果rear>front ,则循环队列中的元素个数为rear-front ;如果rear<front ,则循环队列中的元素个数为M+(rear-front) ;由此可以得到:(1)循环队列中的元素个数为rear-front = 21-14 = 7 。
(2)循环队列中的元素个数为M+(rear-front) = 70+(12-23) = 59 。
注:求循环队列中元素个数的通用式为:( rear-front+M ) % M 。
其中%为求余运算。
40、试编写一个算法,将两个有序的顺序表合并为一个有序的顺序表。
合并有序顺序表的算法如下描述。
输入:长度为的有序数组A(1:n),长度为的有序数组B(1:m)。
输出:有序数组A与有序数组B合并后的有序数组C(1:mn)。
其中mn = m+n 。
上述算法用C语言描述如下(其中ET为数据元素的类型):void mgsl ( int n , ET a[ ] , int m , ET b[ ] , ET c[ ] ){ int i , j , k , t ;i = 0 ; j = 0 ; k = 0 ;while ( ( i<n ) && ( j<m ) ){ if ( a [ i ] <= b [ j ] ){ c [ k ] = a[ i ] ; i = i+1 ; }else { c [ k ] = b [ j ] ; j= j+1 ; }k = k+1 ;}if ( i = = n)for ( t = j ; t < m ; t + + ){ c [ k ] = b [ t ] ; k = k+1 ;elsefor ( t = i ; t < n ; t + + ){ c [ k ] = a [ t ] ; k = k+1 ; }return ;}41、试写出计算循环链表长度的算法。
算法用C语言描述如下(其中ET为数据元素类型,函数值返回循环链表的长度n ):struct node /* 定义循环链表结点类型*/{ ET d ; /* 定义循环链表结点数据类型*/struct node * next ; /* 结点指针*/} ;int lencst ( struct node * head ){ int n ; struct node * p ;n = 0 ; p = head->next ;while ( p != head ) { n = n+1 ; p = p->next ; }return ( n ) ;}42、试写出逆转(带表头结点的)线性单链表的算法。
设其头指针为head ,数据元素类型为ET。
算法用C语言描述如下:struct node /* 定义线性单链表结点类型*/{ ET d ; /* 定义线性单链表结点数据类型*/struct node * next ; /* 结点指针*/} ;void invlst ( struct node * head ){ struct node *p , *q ;p = head->next ;head->next = NULL ;while ( p != NULL ){ q = p ; p = p->next ;q->next = head->next ; head->next = q ;}return ;}43、设有两个有序线性单链表,头指针分别为AH与BH。