数据结构作业及答案
国家开放大学电大《数据结构》网络课形考任务3作业及答案
国家开放大学电大《数据结构》网络课形考任务3作业及答案形考任务3一、单项选择题(每小题2分,共38分)题目1假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。
选择一项:B. 16题目2二叉树第k层上最多有()个结点。
选择一项:A. 2k-1题目3将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。
选择一项:C. 34题目4如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。
选择一项:B. 哈夫曼树题目5在一棵度具有5层的满二叉树中结点总数为()。
选择一项:C. 31题目6一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()个结点。
选择一项:B. 37题目7利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为()。
选择一项:A. 18在一棵树中,()没有前驱结点。
选择一项:A. 树根结点题目9设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有()个叶结点。
选择一项:B. 10题目10在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。
选择一项:A. 2题目11邻接表是图的一种()。
选择一项:A. 链式存储结构题目12图的深度优先遍历算法类似于二叉树的()遍历。
选择一项:A. 先序题目13已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
选择一项:D. V1V2V4V8V5V3V6V7题目14已知如下图所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
选择一项:D. aecbdf题目15图状结构中数据元素的位置之间存在()的关系。
选择一项:B. 多对多在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为()。
数据结构作业题及参考答案
东北农业大学网络教育学院数据结构作业题(一)、选择题(每题2分,共20 分)1在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( )。
2A Qn) B、O(n/2) C、O(1) D O(n )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 ;2A、O(1)B、O(n)C、O(2n)D、O(n)7•栈是一种操作受限的线性结构,其操作的主要特征是( )。
A、先进先出B、后进先出C、进优于出D、出优于进&假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( )。
4•在二叉树的第i 层上至多有 ______________ 结点。
5.对于一棵具有 n 个结点的二叉树,若一个结点的编号为A、 C、 (rear-front-1) % n B 、(rear-front) % n (front-rear+1) % nD 、(rear-front+n) % n高度为5的完全二叉树中含有的结点数至少为(16B 、17C 、3110.如图所示有向图的一个拓扑序列是D 、32)A 、 ABCDEFB 、 FCBEADC 、 FEDCBAD 、 DAEBCF二、填空题(每空1分,共20 分)1. n (n > 0)个顶点的无向图最多有2.在一棵AVL 树中,每个结点的左子树高度与右子树高度之差的绝对值不超过 ________ 。
数据结构练习附答案
一、单项选择题1.逻辑关系是指数据元素间的()A.类型B.存储方式C.结构D.数据项2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表 B.用头指针表示的单循环链表C. 用尾指针表示的单循环链表D. 单链表3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()A.front=front+1B.front=(f ront+1)%(m-1)C.front=(front-1)%m D.front=(front +1)%m4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为( )。
A.rear%n==front B.(front+l)%n==rearC.rear%n-1==front D.(rear+l)%n==front5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为( )。
A.rear%n==front B.front+l=rearC.rear==front D.(rear+l)%n=front6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。
( )A. 90B. 91C. 92D. 937.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。
A. 只有右子树上的所有结点B. 只有右子树上的部分结点C. 只有左子树上的所有结点D. 只有左子树上的部分结点8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。
A. nB. 2nC. n/2D. n*n9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利用()。
A. 求关键路径的方法B.求最短路径的方法C. 深度优先遍历算法D.广度优先遍历算法10.对线性表进行二分查找时,要求线性表必须( )。
数据结构练习题及答案
数据结构练习题(一)一、单选题1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( )。
A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中( )是非线性结构。
A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在()位置。
脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( )。
A.2k-1 +1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。
A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。
A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。
数据结构第4-5章作业及答案
数据结构第4-5章作业及答案⼀、填空题1. 不包含任何字符(长度为0)的串称为空串;由⼀个或多个空格(仅由空格符)组成的串称为空⽩串。
2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的位置为3。
3. ⼦串的定位运算称为串的模式匹配;被匹配的主串称为⽬标串,⼦串称为模式。
4、若n为主串长,m为⼦串长,则串的古典(朴素)匹配算法最坏的情况下需要⽐较字符的总次数为(n-m+1)*m。
5、假设有⼆维数组A6×8,每个元素⽤相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为288 B ;末尾元素A57的第⼀个字节地址为1282 ;若按⾏存储时,元素A14的第⼀个字节地址为(8+4)×6+1000=1072 ;若按列存储时,元素A47的第⼀个字节地址为(6×7+4)×6+1000)=1276 。
(注:数组是从0⾏0列还是从1⾏1列计算起呢?由末单元为A57可知,是从0⾏0列开始!)6、设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950 。
答:不考虑0⾏0列,利⽤列优先公式:LOC(a ij)=LOC(a c1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L 得:LOC(a32,58)=2048+[(58-1)* (60-1+1)+32-1]]*2=89507、三元素组表中的每个结点对应于稀疏矩阵的⼀个⾮零元素,它包含有三个数据项,分别表⽰该元素的⾏下标、列下标和元素值。
8、⼆维数组A[10][20]采⽤列序为主⽅式存储,每个元素占10个存储单元,且A[0][0]的存储地址是2000,则A[6][12]的地址是32609、已知⼆维数组A[20][10]采⽤⾏序为主⽅式存储,每个元素占2个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的存储地址是 116810、⼴义表((a,b),c,d)的表头是(a,b) ,表尾是 (c,d)11、⼴义表((((a),b),c),d)的表头是(((a),b),c) ,表尾是(d)12、已知⼆维数组A[10][20]采⽤⾏序为主⽅式存储,每个元素占2个存储单元,并且A[0][0]的存储地址是1024, 则A[6][18]的地址是130013、若串的长度不能确定,可采⽤动态存储结构,为串值分配⼀个存储空间,同时建⽴⼀个串的描述⼦以指⽰串值的长度和串在存储空间中的位置,称该结构为堆/堆结构14、稀疏矩阵⼀般的压缩存储⽅法有两种,即三元组表和⼗字链表。
数据结构作业题及答案
数据结构作业题及答案第一章绪论1、简述下列概念:数据、数据元素、数据结构、逻辑结构、存储结构、线性结构、非线性结构。
数据:指能够被计算机识别、存储和加工处理的信息载体。
数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。
数据元素有时可以由若干数据项组成。
数据结构:指的是数据之间的相互关系,即数据的组织形式。
一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。
逻辑结构:指各数据元素之间的逻辑关系。
存储结构:就是数据的逻辑结构用计算机语言的实现。
线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
线性表就是一个典型的线性结构。
非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。
2、常用的存储表示方法有哪几种?顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构。
链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
由此得到的存储表示称为链式存储结构。
索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。
3、求解下列算法的时间复杂度(1)i=1;k=0 while(i<n){k=k+10*i;i++;}T(n)=n-1∴T(n)=O(n)这个函数是按线性阶递增的(2)i=0;k=0;do{k=k+10*i;i++;} while(i<n);T(n)=n∴T(n)=O(n)这也是线性阶递增的(3)i=1;j=0;while(i+j<=n) {if(i<j)j++; else i++;}T(n)=n/2∴T(n)=O(n)虽然时间函数是n/2,但其数量级仍是按线性阶递增的。
数据结构第二章作业及答案
8
解答(续):
(2) 插入操作基本步骤: 1) 若i不合法或表L已满,算法结束并返回 ERROR;否则转2) 2) 将第i个元素及之后的所有元素均后移一个位置 3) 将新元素写入空出的位置; 4) 表长+1
9
解答(续):
插入操作算法(算法2.4 ):
Status ListInsert_Sq(SqList &L, int i , ElemType e) { //在顺序线性表L中第i个位置之前插入新的元素e, // i的合法值为1≤i≤ListLength_Sq(L)+1 if (i<1||i>L.length+1)return ERROR; //i值不合法 if (L.length>=L.listsize) { //当前存储空间已满,重新分配空间 newbase=(ElemType*)realloc(L. elem, (L.listsize+LISTINCREMENT)*sizeof (ElemType)); if (!newbase)exit(OVERFLOW); //存储分配失败 L. elem=newbase; //新基址 L.listsize+=LISTINCREMENT; //增加存储容量 } q=&(L.elem[i-1]); //q为插入位置 for (p=&(L. elem[L.length-1]); p>=q ; --p) *(p+1) = *p; //插入位置及之后的元素右移 *q=e; //插入e ++L.length; //表长增1 return OK; }//ListInsert_Sq
15
4.若某线性表最常用的操作是存取任一指定序号的元素和在最 后进行插入和删除运算,则利用( )存储方式最节省时间。 A.顺序表 B.双向链表 C.带头结点的双向循环链表 1 D.循环链表
数据结构(图)习题与答案
一、单选题1、设有5个结点的无向图,该图至少应有_________条边才能确保是一个连通图。
A.7B.8C.6D.5正确答案:A2、设图G=(V,VR),其中: V={A,B,C,D,G},VR={(A,C),(A,D),( B,C),(B,D) ,(G,C),(B,G)},则对应的图形为_________。
A.B.C.D.正确答案:C3、设某有向图中有n个顶点,则该有向图对应的邻接表中有_________个表头结点。
A.n-1B.n+2C.nD.n+1正确答案:C4、在一个无向图中所有顶点的度数之和等于所有边数的_________倍。
A.1B.2C.3D.1/2正确答案:B5、一个无向连通图的生成树是该连通图的_____。
A.极小连通子图B.强连通子图C.连通子图D.极大连通子图正确答案:A6、设某无向图中有n个顶点,则该无向图邻接矩阵的大小是_________。
A.n(n+1)/2B.(n-1)2C. n2D. (n+1)2正确答案:C7、设有n个顶点e条边的无向图,采用邻接矩阵作为物理结构,则删除与某顶点Vi 关联的所有边算法的时间复杂度为_________。
A.O(n2)B.O(n+e)C.O(n*e)正确答案:D8、设有n个顶点e条弧的有向图,采用邻接表作为物理结构,则求某顶点Vi度的算法的时间复杂度为_________。
A.O(n)B.O(n*e)C.O(n+e)D.O(n2)正确答案:C9、设无向图G=(V,E)和G'=(V',E'),如果G'是G的生成树,则下列说法中错误的是_____。
A.G'是G的连通分量B.G'是G的一个无环子图C.G'是G的极小连通子图且V=V'D.G'是G的子图正确答案:A10、设G是一个非连通的无向图,共有10条边,则该图至少有_____个顶点。
A.7B.6C.5D.8正确答案:B11、 n个顶点的有向图为强连通图时,至少含有________。
数据结构练习题及部分答案
第一章绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构C.链表存储结构D.以上都不对4.数据结构中,在逻辑上可以把数据结构分成:( )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构5.以下属于顺序存储结构优点的是()。
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示6.数据结构研究的内容是()。
A.数据的逻辑结构B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面7.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数8.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。
(1)A. 计算方法 B.排序方法C. 解决问题的有限运算序列D.调度方法(2)A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性9.以下关于数据的逻辑结构的叙述中正确的是()。
A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。
数据结构练习题及参考答案
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
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)5. 执行下面程序段时,执行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)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构第六章作业及答案
3、试分别画出具有3个结点的树和3个结点的二叉树 的所有不同形态。 4、对右图所示的二叉树求出 A 以下的遍历序列: B C (1)先序序列 D E F (2)中序序列 (3)后序序列 G H 5、假设一棵二叉树的先序序列为 EBADCFHGIKJ 和 中序序列为 ABCDEFGHIJK。请画出该树,并给 出后序序列。 6、假设一棵二叉树的中序序列为 DCBGEAHFIJK和 后序序列为 DCEGBFHKJIA 。请画出该树,并给 出先序序列。
2
7、将以下森林转换成二叉树。
A
B
C
D
E F G J I
H
L K
3
8、画出和下列二叉树相应的森林。
(a)
A
(b) (c)
A B C
(d)
A B C B C D B
(e)
A
C E F
A
G
J
H
K M
I
4
第六章作业解答 1、(1) M、N、D、L、F、J、K是叶子结点
(2) C是结点G的双亲 (3) A、C是结点G的祖先 (4) I、M、N是结点E的子孙 (5) 树的深度是5 2、(1)二叉树与树的区别: 二叉树的一个结点至多有2个子树,树则不然; 二叉树的一个结点有左、右之分,而树则没有此要求 (2)一棵度为2的树有2个分支,没有左、右之分, 一棵二叉树也可以有2个分支,但有左、右之分, 且左、右不能交换。 3、具有3个结点的树的形态为:
C D
E
F
K
7
7、解:转换后的二叉树为:
A B C D E F G J K I L H
8
8、解:转换后的森林为: (a) (b) (c)
A A B A B C
数据结构习题和答案及解析
第 1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。
【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。
【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
数据结构题及参考答案
数据结构作业题作业题(一)一、单项选择题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. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
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)5. 执行下面程序段时,执行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)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构作业解答
第一章作业一、选择题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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论一、选择题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.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。
A.正确B.不正确二、填空题1.数据逻辑结构包括三种类型、和,树形结构和图形结构合称为。
2.在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。
3.算法的五个重要特性是、、、、。
4.下面程序段的时间复杂度是。
for( i = 0; i < n; i++)for( j = 0; j < m; j++)A[i][j] = 0;5.下面程序段的时间复杂度是。
i = s = 0;while ( s < n){i ++; /* i = i +1*/s += i; /* s = s + i*/} 6.下面程序段的时间复杂度是。
s = 0;for( i = 0; i < n; i++)for( j = 0; j < n; j++)s += B[i][j];sum = s;7.下面程序段的时间复杂度是。
i = 1;while ( i <= n )i = i * 3;第一章绪论(参考答案)一、选择题:1. A. B。
2. B. D。
3.C。
4. A.B。
(顺序存储结构的地址在内存中是连续的所以可以通过计算地址的相对变化而实现随机存取,而链式存储结构的存储地址不一定连续,只能通过结点的指针按次序顺序存取) 5. C.A。
6. C.B。
7.B。
8.D。
9.B。
10.B。
二、填空题:1.线性结构,树形结构,图形结构,非线性结构。
2.没有,1,没有,1。
3.有穷性,确定性,可行性,输入,输出。
4.O(m*n)。
5.O)。
6.O(n2)。
7.O(log3n)。
5. O)。
解:设基本语句频度为N。
N=1,i=1,s=1; N=2,i=2,s=1+2;N=1,i=1,s=1;N=3,i=3,s=1+2+3;…当频度为N时,i=N,s=1+2+3…+N。
则根据循环条件,s=1+2+3+…+N<n,即:N(N+1)<n2所以,时间复杂度为T(n)=7.O(log3n)。
解:设基本语句的频度为N。
(注意此题没有限制语句频度)N=1,i=3;N=2,i=9;N=3,i=27;…当频度为N时,i=3N所以3N<n (据语句i<n)N<log3n所以时间复杂度T(n)=O(log3n)第二章线性表单项选择题1.一个顺序表的第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是。
A.110B.108C.100D.1202.一个栈的入栈序列是a、b、c、d、e,则栈的不可能输出序列是。
A.edcbaB.decbaC.dceabD.abcde3.若一个栈的入栈序列是1、2、3、…、n,其输出序列为p1、p2、p3、…、p n,若p1=n,则p i为。
A. iB. n = iC. n - i +1D.不确定4.栈结构通常采用的两种存储结构是。
A.顺序存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构5.判断一个栈ST (最多元素为m) 为空的条件是。
A.ST->top!=0B. ST->top==NULLC. ST->top!= mD. ST->top== m6.判断一个栈ST (最多元素为m) 为满栈的条件是。
A.ST->top!=0B. ST->top==0C. ST->top!= m-1D. ST->top== m7.栈的特点是1,队列的特点是2。
A.先进先出B.先进后出8.一个队列的入队序列是1、2、3、4,则队列输出序列是。
A.4、3、2、1B.1、2、3、4C.1、4、3、2D.3、2、4、19.判断一个队列QU (最多元素为m) 为空的条件是。
A. QU->rear-QU->front == mB. QU->rear-QU->front-1 == mC. QU->front == QU->rearD. QU->front-QU->rear + 110.判断一个队列QU (最多元素为m) 为满队列的条件是。
A. QU->rear-QU->front == mB. QU->rear-QU->front-1 == mC. QU->front == QU->rearD. QU->front-QU->rear + 111.判断一个循环队列QU (最多元素为m) 为空的条件是。
A. QU->front == QU->rearB. QU->front != QU->rearC. QU->front == (QU->rear + 1) %mD. QU->front != (QU->rear + 1) %m12.判断一个循环队列QU (最多元素为m) 为满队列的条件是。
A. QU->front == QU->rearB. QU->front != QU->rearC. QU->front == (QU->rear + 1) %mD. QU->front != (QU->rear + 1) %m13循环队列用数组A[0, m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是。
A.(rear-front + m) %mB. rear-front + 1C. rear-front-1D. rear-front14.栈和队列的共同点是。
A.都是先进后出B.都是先进先出C.只允许在端点处插入、删除元素D.没有共同点填空题1.线性表、栈和队列都是结构,可以在线性表的位置插入和删除元素;对于栈只能在插入和删除元素;对于队列只能在插入元素和删除元素。
2.在一个长度为n的线性表的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动个元素。
3.在一个长度为n的向量中的删除第i个元素(1≤i≤n)时,需要向前移动个元素。
4.若栈顶指针指向栈顶的空位,向栈中压入元素的操作是。
5.若栈顶指针指向栈顶元素,则对栈进行退栈时的操作是。
6.在一个循环队列中,队首指针指向队首元素的。
7.从循环队列中删除一个元素时,其队头指针。
8.在具有n个单元的循环队列中,队满时共有个元素的。
9.一个栈的输入序列是12345,则栈的输出序列43512是。
(填写“可能”或“不可能”)10.一个栈的输入序列是12345,则栈的输出序列12345是。
(填写“可能”或“不可能”)第二章线性表(参考答案)选择题:1.B。
2.C。
3.C。
4.A。
5.B。
6.D。
7.B,A。
8.B。
9.C。
10.A。
11.A。
12.C。
13.A。
14.C。
(2.C。
堆栈讲究先进后出,后进先出选项1是abcde先入栈,然后依次出栈,正好是edcba 选项2是abcd先依次入栈,然后d出栈,e再入栈,e出栈。
选项c是错误的,不可能a先出栈。
选项4是a入栈,然后a出栈;b再入栈,b出栈……依此类推。
所以选c。
)(13.A。
因为rear有可能会转一圈到front的后面,所以需要加一下m)填空题:1.线性,任何,栈顶,队尾,队首。
2.n - i +1。
3.n - i。
4.先移动栈顶指针,后存入元素。
5.先取出元素,后移动栈顶指针。
6.前一个位置。
7.要加18.n-1。
9.不可能的。
10.可能的。
第三章链表单项选择题1.不带头结点的单链表head为空的判定条件是。
A.head==NULLB.head->next==NULLC.head->next==headD.head!=NULL2.带头结点的单链表head为空的判定条件是。
A.head==NULLB.head->next==NULLC.head->next==headD.head!=NULL3.非空的循环单链表head的尾结点(由指针p所指向)满足。
A.p->next==NULLB.p==NULLC.p->next==headD.p==head4.在循环双链表的p所指结点之后插入s所指结点的操作是。
A. p->right=s;s->left=p;p->right->left=s;s->right=p->right;B. p->right=s;p->right->left=s;s->left=p;s->right=p->right;C. s->left=p;s->right=p->right;p->right=s;p->right->left=s;D. s->left=p;s->right=p->right; p->right->left=s;p->right=s;5.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行。