数据结构各章作业题目
数据结构第2章作业 线性表(答案)

第2章线性表班级学号__________-姓名一、判断正误(×)1. 链表的每个结点中都恰好包含一个指针。
链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
(×)2. 链表的物理存储结构具有同链表一样的顺序。
链表的存储结构特点是无序,而链表的示意图有序。
(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
链表的结点不会移动,只是指针内容改变。
(×)4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
(×)5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
正好说反了。
顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
前一半正确,但后一半说法错误,那是链式存储的优点。
顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
(×)7. 线性表在物理存储空间中也一定是连续的。
线性表有两种存储方式,顺序存储和链式存储。
后者不要求连续存放。
(×)8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。
(×)9. 顺序存储方式只能用于存储线性结构。
顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。
(后一节介绍)(×)10. 线性表的逻辑顺序与存储顺序总是一致的。
理由同7。
链式存储就无需一致。
《数据结构》第二版严蔚敏课后习题作业参考答案(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章绪1。
1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。
(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。
(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。
}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。
国开作业数据结构(本)-单元测试11参考(含答案)

题目:在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。
选项A:2
选项B:4
选项C:1/2
选项D:1
答案:2
题目:邻接表是图的一种()。
选项A:链式存储结构
选项B:索引存储结构
选项C:顺序存储结构
选项D:散列存储结构
答案:链式存储结构
题目:如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是()。
选项A:完全图
选项B:有回路
选项C:连通图
选项D:一棵树
答案:连通图
题目:下列有关图遍历的说法不正确的是()。
选项A:非连通图不能用深度优先搜索法
选项B:连通图的深度优先搜索是一个递归过程
选项C:图的遍历要求每一顶点仅被访问一次
选项D:图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
答案:非连通图不能用深度优先搜索法
题目:无向图的邻接矩阵是一个()。
选项A:零矩阵
选项B:上三角矩阵
选项C:对角矩阵
选项D:对称矩阵
答案:对称矩阵
题目:图的深度优先遍历算法类似于二叉树的()遍历。
选项A:中序
选项B:后序
选项C:层次
选项D:先序
答案:先序
题目:已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。
)。
)。
)条边。
选项A:n(n+1)/2
选项B:n(n-1)/2
选项C:n(n-1)
选项D:n(n+1)
答案:n(n-1)/2。
国开作业数据结构(本)-单元测试12参考(含答案)

题目:设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用()排序法。
选项A:快速排序选项B:堆排序选项C:冒泡排序选项D:基数排序答案:堆排序题目:对数据元素序列(49,72,68,13,38,50,97,27)进行排序,前三趟排序结果时的结果依次为第一趟:49,72,68,13,38,50,97,27;第二趟:49,68,72,13,38,50,97,27;第三趟:13,49,68,72,38,50,97,27。
该排序采用的方法是()。
选项A:冒泡排序法选项B:选择排序法选项C:插入排序法选项D:堆排序法答案:插入排序法题目:一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序(堆顶元素是最小元素)的方法建立的初始化堆为()。
选项A:39,47,46,80,41,57选项B:39,41,46,80,47,57选项C:39,80,46,47,41,57选项D:41,39,46,47,57,80答案:39,41,46,80,47,57题目:一组记录的关键字序列为(37,70,47,29,31,85),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。
选项A:31,29,37,85,47,70选项B:31,29,37,47,77,85选项C:31,29,37,70,47,85选项D:29,31,37,47,70,85答案:31,29,37,47,77,85题目:下述几种排序方法中,要求内存量最大的是()。
选项A:快速排序选项B:归并排序选项C:选择排序选项D:插入排序答案:归并排序题目:若待排序序列在排序前已按关键字递增排列,则采用()方法比较次数最多。
选项A:直接选择排序选项B:归并排序选项C:归并排序。
数据结构第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.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构考试试题库含答案解析
数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
(完整版)数据结构练习题及参考答案
数据结构练习题第一部分绪论一、单选题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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章作业一、选择题1.被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为( ).A。
规则B。
结构 C. 集合 D. 运算2.在Data_Structure=(D,S)中,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.以下选项属于非线性结构的是().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.算法的时间复杂度与()有关。
A. 问题规模B. 源程序长度C. 计算机硬件运行速度D. 编译后执行程序的质量二、指出下列各算法的功能并求出其时间复杂度。
(1)int Prime(int n){int i=2,x=(int)sqrt(n); //sqrt(n)为求n的平方根while(i<=x){if(n%i==0)break;i++;}if(i〉x)return 1;else return 0;}(2)int sum1(int n){int p=1,s=0;for(int i=1;i<=n;i++){p*=i;s+=p;}return s;}(3)int sum2(int n){int s=0;for(int i=1;i〈=n;i++){int p=1;for(int j=1;i〈=i;j++) p*=j;s+=p;}return s;}(4)int fun(int n){int i=1,s=1;while(s<n) s+=++i;return i;}(5)void mtable(int n){for(int i=1;i〈=n;i++){for(int j=i;j<=n;j++)cout<〈i〈<"*"<<j〈<"=”〈〈setw(2)<〈i*j<<" ”;cout<<endl;}}第二章作业 一、选择题1. 在线性表中的每一个表元素都是不可再分的( )A 。
数据项B 。
数据记录C 。
数据元素D 。
数据字段2. 顺序表是线性表的( )存储表示。
A. 有序B. 连续C. 数组D. 顺序存取3. 若长度为n 的非空线性表采用顺序存储结构,在表中的第i 个位置插入一个数据元素,i 的合法值应该是( ) A. n i ≤≤1B. 11+≤≤n iC 。
10-≤≤n iD. n i ≤≤04. 若设一个顺序表的长度为n ,那么,在表中顺序查找一个值为x 的元素时,在等概率的情况下,查找成功的数据平均比较次数为( ) A 。
nB. 2/nC. 2/)1(+nD 。
2/)1(-n5. 在长度为n 的顺序表的表尾插入一个新的元素的时间复杂度为( )A. )(n OB 。
)1(OC 。
)(2n OD 。
)(log 2n O6. 数据结构反映了数据元素之间的结构关系.单链表是一种( )。
A 。
顺序存储线性表 B. 非顺序存储非线性表 C. 顺序存储非线性表 D 。
非顺序存储线性表7. 单链表又称为线性链表,在单链表上实施插入和删除操作( )A 。
不需移动结点,不需改变结点指针B 。
不需移动结点,只需改变结点指针 C. 只需移动结点,不需改变结点指针D 。
既需移动结点,又需改变结点指针8. 已知L 是带头结点的单链表,则删除首元素结点的语句是( )A 。
L=L->next;B 。
L-〉next=L-〉next —〉next; C. L=L —〉next->next ;D 。
L —>next=L;9. 已知单链表A 长度为m ,单链表B 长度为n ,若将B 链接在A 的末尾,在没有链尾指针的情况下,算法的时间复杂度应为( )。
A 。
)1(OB 。
)(m O C. )(n O D 。
)(n m O10. 给定有n 个元素的一维数组,建立一个有序单链表的时间复杂度是( )A 。
)1(O B. )(n OC 。
)(2n OD. )log (2n n O二、算法设计1. 设计一个算法,从顺序表L 中(SqList L)删除具有给定值x(ElemType x)的所有元素。
2。
设计一个算法,从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不相同。
3。
设计一个算法,在非递减有序的带头结点的单链表中删除值相同的多余结点。
第三章作业 一、选择题1. 用S 表示进栈操作,用X 表示出栈操作,若元素的进栈顺序是1234,为了得到1342的出栈顺序,相应的S 和X 的操作序列为( ) A. SXSXSSXXB. SSSXXSXXC. SXSSXXSXD 。
SXSSXSXX2. 假设一个栈的输入序列是1,2,3,4,则不可能得到的输出序列是( )A 。
1,2,3,4B 。
4,1,2,3C 。
4,3,2,1D. 1,3,4,23. 已知一个栈的进栈序列为1,2,3,…,n ,其输出序列的第一个元素是i ,则第j 个出栈元素是( ).A 。
i j -B 。
i n -C. 1+-i jD 。
不确定4. 已知一个栈的进栈序列为n ,,3,2,1 ,其输出序列是n p p p p ,,,,321 。
若n p =1,则i p 的值是( )A. iB 。
i n -C. 1+-i nD 。
不确定5. 已知一个栈的进栈序列为n ,,3,2,1 ,其输出序列是n p p p p ,,,,321 。
若31=p ,则2p 的值是( )A.一定是2B 。
一定是1C 。
可能是1D. 可能是26. 已知一个栈的进栈序列为n p p p p ,,,,321 ,其输出序列是n ,,3,2,1 。
若13=p ,则1p 的值是( ) A.一定是2B 。
可能是2C.不可能是2D. 一定是37. 已知一个栈的进栈序列为n p p p p ,,,,321 ,其输出序列是n ,,3,2,1 。
若33=p ,则1p 的值是( ) A 。
一定是2B 。
可能是2C 。
不可能是1D 。
一定是18. 已知一个栈的进栈序列为n p p p p ,,,,321 ,其输出序列是n ,,3,2,1 。
若1=n p ,则1p 的值是( ) A 。
1+-i nB. i n -C 。
iD 。
不确定9.设栈S和队列Q的初始状态均为空,元素1,2,3,4,5,6,7,依次进入S.如果每个元素出栈后立即进入队列Q,且7个元素的出队顺序为2,4,3,6,5,1,7,则栈S的容量至少是()A. 1 B。
2 C。
3 D. 410.对中缀表达式523-+求值,在求值过程中扫描到6时,操作数栈和操作符栈的内+-4(**26)32*容分别是( )A. 3,2,4,2,2和+,*,(,+,*B. 3,2,4,4和+,*,(,+C. 3,2,8和+,*,(D.3,2,8,6和+,*,(,—二、算法设计题1。
详见《数据结构题集(C语言版)》第25页3。
24。
2。
详见《数据结构题集(C语言版)》第25页3。
25。
第四章作业11.串是一种特殊的线性表,其特殊性体现在()A。
可以顺序存储B。
数据元素是一个字符C。
可以链式存储D。
数据元素可以是多个字符12.设有两个串T和P,求P在T中首次出现的位置的运算叫做( )。
A. 求子串B. 模式匹配C。
串替换 D. 串连接13.下面关于串的叙述中,哪一个是不正确的?( )A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储14.串的长度是指()A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数15.两个串相等的充分必要条件是()A.串中所含的字符相同 B.串中所含字符的个数相同,且对应位置上的字符也相同C.串中所含的字符个数相同 D.串中对应位置上的字符相同6。
已知p=”abcaabbabcabaacbacb”,求出next函数值.第五章作业 一、选择题16. 数组通常具有的操作是( )A. 顺序存取B. 直接存取C 。
散列存取D 。
索引存取17. 多维数组实际上是由( )实现的。
A. 一维数组B. 多项式C 。
三元组表D 。
简单变量18. 在二维数组A[8][10]中,每一个数组元素A[i ][j ]占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是( )。
A. 80B 。
100C 。
240D 。
27019. 一个二维数组A[10][20]按行存放于一个连续的存储空间中,A [0][0]的存储地址是200,每个数组元素占1个存储字,则A [6][2]的地址为( ) A 。
226B 。
322C. 341D 。
34220. 一个二维数组A[10][20]按列存放于一个连续的存储空间中,A [0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址为( ) A 。
226B 。
322C 。
341D. 34221. 在二维数组A[9][10]中,每个数组元素占用3个存储单元,从首地址SA 开始按行连续存放,在这种情况下,元素A[8][5]的起始地址为( ) A. SA+141B. SA+144C. SA+222D. SA+25522. 将一个n n ⨯的对称矩阵A 的下三角部分按存放在一个一维数组B 中,A [0][0]存放在B[0]中,那么第i 行的对角元素A [i ][i ]在B 中的存放位置是( ) A 。