大工20春《数据结构》在线作业3题目【标准答案】
大工20春9月网考【数据结构】复习资料
大连理工大学网络教育学院2020年春《数据结构》期末考试复习题☆注意事项:本复习题满分共:200分。
一、单项选择题1、在队列中存取数据的原则是()。
A.先进先出B.后进先出C.先进后出D.随意进出2、在下列链表中,不能从当前结点出发访问到其余各结点的是()。
A.单链表B.单循环链表C.双向链表D.双向循环链表3、在一棵二叉树上第5层的结点数最多为()设树根为第1层。
A.16 B.15 C.8 D.324、一棵有124叶子结点的完全二叉树,最多有()个结点。
A.247 B.249 C.248 D.1255、具有10个叶子结点的二叉树中有()个度为2的结点。
A.8 B.9 C.10 D.116、若一棵二叉树的先序遍历序列为abdgcefh,中序遍历的序列为dgbaechf,则后序遍历的结果为()。
A.gdbehfca B.bdgaechfC.gdbecfha D.gcefhabd7、对线性表进行顺序查找时,要求线性表的存储结构是()。
A.倒排表B.索引表C.顺序表或链表D.散列表8、对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的查找长度为()。
A.2 B.3 C.4 D.59、在所有排序方法中,关键字比较的次数与记录的初始排序次序无关的是()。
A.希尔排序B.起泡排序C.插入排序D.选择排序10、堆的形状是一棵()。
A.二叉排序树B.满二叉树C.完全二叉树D.平衡二叉树11、线性表采用顺序存储结构时,其地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续与否均可以12、在栈中存取数据的原则是()。
A.先进先出B.后进先出C.后进后出D.随意进出13、插入和删除只能在一端进行的线性表,称为()。
A.队列B.循环队列C.栈D.数组14、一个基本线性表的第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是()。
数据结构 第3章习题答案
答:
2. 【严题集 3.3②】写出下列程序段的输出结果(栈的元素类型 SElem Type 为 char)。 void main( ){ Stack S; Char x,y; InitStack(S); X=’c’;y=’k’; Push(S,x); Push(S,’a’); Push(S,y);
4
C.QU->front = = QU->rear
D.QU->front = = QU->rear+1
解:队满条件是元素个数为 m0。由于约定满队时队首指针与队尾指针相差 1,所以不必再减 1 了,应当选
A。当然,更正确的答案应该取模,即:QU->front = = (QU->rear+1)% m0
( D )5.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的
③不变
④清 0 ⑤ 加 2
⑥减 2
D:① a,b ②b,c ③c,a
④b,a ⑤ c,b ⑥ a,c
E:① n+1 ②n+2 ③ n
④ n-1 ⑤ n-2
答案:ABCDE=2, 2, 1, 6, 4
注意,向地址的高端生长,称为向上生成堆栈;向地址低端生长叫向下生成堆栈,本题中底部为 n,向地址的低端递减生成,
分别设在这片内存空间的两端。 ( × )9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
错,后半句不对。
( × )10. 一个栈的输入序列是 12345,则栈的输出序列不可能是 12345。
错,有可能。
三、单项选择题(每小题 1 分,共 20 分)
( B )1.栈中元素的进出原则是 A.先进先出 B.后进先出
东北大学20年春学期《数据结构Ⅰ》在线作业3(资料答案)
20春学期《数据结构Ⅰ》在线平时作业3
学校:奥鹏东北大学
一、单选题 (共 20 道试题,共 100 分)
1.设数组A[m]为循环队列Q的存储空间,front为队头指针,rear为队尾指针,则判定Q为空队列的条件是
[[A.]](rear-front)%m= =m-1
[[B.]](rear-front)%m= =1
[[C.]]front= =(rear+1)%m
[[D.]]front= =rear
作答提示
√选择是:D
2.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为
[[A.]]O(n) O(n)
[[B.]]O(n) O(1)
[[C.]]O(1) O(n)
[[D.]]O(1) O(1)
作答提示
√选择是:C
3.高度为5的完全二叉树中含有的结点数至少为
[[A.]]32
[[B.]]31
[[C.]]17
[[D.]]16
作答提示
√选择是:D
4.二维数组A按行优先顺序存储,其中每个元素占1个存储单元。
若A[1][1]的存储地址为420,
A[3][3]的存储地址为446,则A[5][5]的存储地址为
[[A.]]473
[[B.]]472
[[C.]]471
[[D.]]470
作答提示
√选择是:B
5.若一棵二叉树有11个叶子结点,则该二叉树中度为2的结点个数是
[[A.]]不确定的
[[B.]]12。
大工2020年春《数据结构》在线作业3学习资料答案
【奥鹏】-大连理工20春《数据结构》在线作业3
提示:请认真阅读本套试卷,核对是否是您需要的题目,本套试卷只做参考学习
使用!!!
一、单选题 (共 10 道试题,共 50 分)
【题目】采用顺序查找方法查找长度为n的线性表时,成功查找时的平均查找长度为()。
[A.]n
[B.]n/2
[C.](n+1)/2
[D.](n-1)/2
正确的选择是:C
【题目】对线性表进行折半查找时,要求线性表必须()。
[A.]以顺序方式存储
[B.]以链接方式存储
[C.]以顺序方式存储,且结点按关键字有序排列
[D.]以链表方式存储,且结点按关键字有序排列
正确的选择是:C
【题目】有n个元素的数组,查找其中最大值的元素,一般需要()次元素的比较。
[A.]1
[B.]n
[C.]n+1
[D.]n-1
正确的选择是:D
【题目】查找效率最高的二叉排序树是()。
[A.]所有结点的左子树都为空的二叉排序树
[B.]所有结点的右子树都为空的二叉排序树
[C.]平衡二叉树
[D.]没有左子树的二叉排序数
正确的选择是:C
【题目】在哈希查找过程中,可用()来处理冲突。
[A.]除留余数法
[B.]数字分析法
[C.]线性探测法
[D.]关键字比较法。
《数据结构》填空作业题(答案)
《数据结构》填空作业题答案第1章绪论(已校对无误)1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。
2.程序包括两个内容:数据结构和算法。
3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。
4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。
5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。
6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。
7. 在树形结构中,数据元素之间存在一对多的关系。
8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。
9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。
10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。
11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。
12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。
13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。
14. 数据结构在物理上可分为顺序存储结构和链式存储结构。
15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。
16. 数据元素可由若干个数据项组成。
17. 算法分析的两个主要方面是时间复杂度和空间复杂度。
18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。
19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。
20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切的定义,并在有穷时间内计算出结果。
大连理工大学数据结构 课后题答案(1-3章)
数据结构部分课后习题答案(1-3)第一章1.1数据的逻辑结构是从具体问题中抽象出来的数学模型,体现了事物的组成和事物之间的逻辑关系。
数据的存储结构主要用来解决各种逻辑结构在计算机中物理存储表示的问题。
1.2事前分析和事后统计事前分析:优点,程序不必运行,所得结果只依赖于算法本身缺点,不够精确事后统计:优点,精确缺点,必须运行程序,所得结果依赖于硬件、环境等因素1.3void func(int n){int i=1,k=100;while(i<n){k++;i+=2;}}考虑赋值、运算操作执行的次数第3行赋值2次第6行赋值执行n次,加法执行n次所以,总共2n+2次操作,算法复杂度为O(n)1.4y=y+i*j执行次数:1.5第二章2.9内存中一片连续空间(不妨假设地址从1到m)提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。
答:S1和S2共享内存中一片连续空间(地址1到m),可以将S1和S2的栈底设在两端,两栈顶向共享空间的中心延伸,仅当两栈顶指针相邻(两栈顶指针值之差的绝对值等于1)时,判断为栈满,当一个栈顶指针为0,另一个栈顶指针m+1时为两栈均空。
2.10线性表是数据项组成的一种有限且有序的序列,各元素之间呈线性关系。
从逻辑结构来说,栈和队列与线性表相同,都是典型的线性结构。
与线性表不同的是,栈和队列的操作特殊,受到一定的限制,仅允许在线性表的一端或两端进行。
栈是限定仅在一端进行插入删除的线性表,无论插入、删除还是读取都在一端进行,按后进先出的原则。
队列的元素只能从一端插入,从另一端删除,按先进先出的原则进行数据的存取。
2.11共有132种合法序列。
235641序列可以。
154623序列不可以。
对于每一个数来说,必须进栈一次、出栈一次。
我们把进栈设为状态‘1’,出栈设为状态‘0’。
n个数的所有状态对应n个1和n个0组成的2n位二进制数。
20春《数据结构》作业3
20春《数据结构》作业3A:小于m的最大奇数B:小于m的最大素数C:小于m的最大偶数D:小于m的最大合数答案:B 在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为___。
A:4 B:5 C:6 D:7 答案:C 设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列___方法可以达到此目的。
A:快速排序 B:堆排序 C:归并排序 D:插入排序答案:B A:A B:B C:C D:D 答案:A 设某棵二叉树中有2000个结点,则该二叉树的最小高度为___。
A:9 B:10 C:11 D:12 答案:C 设有6个结点的无向图,该图至少应有___条边才能确保是一个连通图。
A:5 B:6 C:7 D:8答案:A A:A B:B C:C D:D 答案:A 某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为___。
A:3 B:2 C:4 D:5 答案:CA:A B:B C:C D:D 答案:C 串的长度是指___。
A:串中所含不同字母的个数 B:串中所含字符的个数 C:串中所含不同字符的个数 D:串中所含非空格字符的个数答案:B 设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行___趟的分配和回收才能使得初始关键字序列变成有序序列。
A:3 B:4 C:5 D:8 答案:A A:A B:B C:C D:D 答案:C 设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为___。
A:2,3,5,8,6 B:3,2,5,8,6 C:3,2,5,6,8 D:2,3,6,5,8 答案:CA:A B:BC:C D:D 答案:C 如果最常用的操作是取第i个结点及其前驱,则采用___存储方式最节省时间。
A:单链表 B:双链表 C:单循环链表 D:顺序表答案:D 设某有向图中有n个顶点,则该有向图对应的邻接表中有___个表头结点。
数据结构——考试题库及答案
收藏 A. n 是 m 子孙 B. n 在 m 右方 C. n 在 m 左方 D. n 是 m 祖先
回答错误!正确答案: C
具有 100 个结点的完全二叉树的深度为________。
收藏 A. 8 B. 6 C. 7 D. 9
回答错误!正确答案: C
有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,100}中折 半查找值为 82 的结点时,_______次比较后查找成功。
收藏 A. 2 B. 4 C. 1 D. 8
回答错误!正确答案: B
已知二叉树的后序遍历序列是 dabec,中序遍历序列是 debac,则它的先序遍历 序列是________。
收藏 A. 5 B. 3 C. 4 D. 6
回答错误!正确答案: A
下列函数中,时间复杂度最小的是________。
收藏 A. nlogn+5000n B. n^logn-6000n C. n^2-8000n D. 10nlogn-7000n
回答错误!正确答案: A
单链表是一种________的存储结构。
对序列{22,86,19,49,12,30,65,35,18}进行一趟排序后得到的结果为{12,86,19,4 9,22,30,65,35,18},则其使用的排序方法为( )。
收藏 A. 选择排序 B. 冒泡排序 C.
插入排序 D. 快速排序
回答错误!正确答案: A
字符串是一种特殊的线性表,其特殊性在于它的数据元素只能是______ __。
收藏 A. 15 B. 12 C. 16 D. 11
回答错误!正确答案: A
奥鹏大工18春《数据结构》在线作业3答案
大工18春《数据结构》在线作业3
试卷总分:100 得分:100
一、判断题 (共 10 道试题,共 50 分)
1.散列文件中存放一组记录的存储单位称为桶。
A.对
B.错
正确答案:A
2.散列方法的查找性能用平均查找长度ASL来衡量。
A.对
B.错
正确答案:A
3.二分查找对线性表的存储结构无任何要求。
A.对
B.错
正确答案:B
4.折半查找只能在有序的顺序表上进行而不能在有序链表上进行。
A.对
B.错
正确答案:A
5.快速排序算法是一种不稳定的算法。
A.对
B.错
正确答案:A
6.直接选择排序属于选择类排序,是一种稳定的排序方法。
A.对
B.错
正确答案:B
7.对于一个堆,按二叉树层次进行遍历可以得到一个有序序列。
A.对
B.错
正确答案:B。
大连理工大学数据结构试题及答案
数据结构期末试卷一、选择题1.组成数据的基本单位是()。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。
(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列()的逻辑结构。
(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有()个。
(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。
(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是()。
(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。
(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为()。
(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有()种不同的形态。
(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则()的空间复杂度最大。
(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。
数据结构(含课程设计·随堂练习2020春华工答案
D.算法的执行时间和问题规模之间的关系
答题:A. B. C. D.(已提交)
参考答案:D
问题解析:
10.(单选题)某算法的时间复杂度为O( ),表明该算法的()
A问题规模是 B执行时间等于
C.执行时间与 成正比D.问题规模与 成正比
答题:A. B. C. D.(已提交)
参考答案:C
答题:A. B. C. D.(已提交)
参考答案:D
问题解析:
4.(单选题)已知一个栈的进栈序列是1, 2, 3, ..., n,其输出序列是p1, p2, ..., pn,若p1=n,则pi的值()。
A. i B. n-i C. n-i+1 D.不确定
答题:A. B. C. D.(已提交)
参考答案:C
B.一个结点的指针域用于指向下一个数据元素的结点
C.单链表必须带有头结点
D.单链表中的所有结点可以连续存放,也可以不连续存放
答题:A. B. C. D.(已提交)
参考答案:C
问题解析:
9.(单选题)链表不具备的特点是()
A.可以随机访问任一结点B.插入、删除不需要移动元素
C.不必事先估计存储空间D.所需空间与其长度成正比
数据结构
第一章
随堂练习提交截止时间:2019-12-15 23:59:59
当前页有10题,你已做10题,已提交10题,其中答对10题。
1.(单选题)计算机所处理的数据一般具备某种内在联系,这是指()。
A、数据和数据之间存在某种关系B.元素和元素之间存在某种关系
C元素内部具有某种结构D.数据项和数据项之间存在某种关系
C.顺序结构D.逻辑结构
答题:A. B. C. D.(已提交)
《数据结构》在线作业答案整理
《数据结构》在线作业答案整理1.单选题1.无向图的邻接矩阵是一个()。
A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵2.串的长度是()。
A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于0D.串中所含字符的个数3.对n个记录的文件进行堆排序,最坏情况下的执行时间为()。
A.O(log2n)B.O(nlogn)C.O(n)D.O(n*n)4.为了最快地对线性结构的数据进行某数据元素的读取操作,则其数据存储结构宜采用()方式。
A.顺序存储B.链式存储C.索引存储D.散列存储5.算法分析的目的是()。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性6.在一个单链表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;7.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.地址8.设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。
A.3700B.4376C.3900D.46209.以下关于数据的存储结构的叙述哪一条是正确的()。
A.数据的存储结构是数据间关系的抽象描述B.数据的存储结构是逻辑结构在计算机存储器中的实现C.数据的存储结构分为线性结构和非线性结构D.数据的存储结构对数据运算的具体实现没有影响10.设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为()。
A.3,2,5,6,4,1B.1,5,4,6,2,3C.2,4,3,5,1,6D.4,5,3,6,2,111.下列数据组织形式中,()的各个结点可以任意邻接。
数据结构试题集含答案
程序复杂性3、具有线性结构的数据结构是 D ;A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、B等5个特性;A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是C ;fori=0;i<m;i++forj=0;j<n;j++aij=ij;A. Om2B. On2C. OmnD. Om+n6、算法是 D ;A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为3n+nlog2n+n2+8,其时间复杂度表示 C ;A. OnB. Onlog2n C. On2 D. Olog2n8、下面程序段的时间复杂度为 C ;i=1;whilei<=ni=i3;A. OnB. O3nC. Olog3n D. On39、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的 B 和运算等的学科;A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是 C ;i=s=0;whiles<n{i++;s+=i;}A. OnB. On2C. O√nD. On311、抽象数据类型的三个组成部分分别为 A ;A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是 A ;A. 正确性算法应能正确地实现预定的功能B. 易读性算法应易于阅读和理解,以便调试、修改和扩充C. 健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D. 高效性即达到所需要的时间性能13、下列程序段的时间复杂度为 B ;x=n;y=0;whilex>=y+1y+1y=y+1;A. OnB. )(nO C. O1 D. On2二、填空题1、程序段“i=1;whilei<=n i=i2;”的时间复杂度为 Olog2n ;2、数据结构的四种基本类型中,树形结构的元素是一对多关系;三、综合题1、将数量级O1,ON,ON2,ON3,ONLOG2N,OLOG2N,O2N按增长率由小到大排序;答案: O1 < Olog2N < ON < ONlog2N < ON2 < ON3 < O2N第二章线性表一、选择题1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度C ;A. Olog2n 1 C. On n22、若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用A 存储方式最节省时间;A. 顺序表B. 单链表C. 双链表D. 单循环链表3、具有线性结构的数据结构是 D ;A. 图B. 树C. 广义表D. 栈4、在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动 B 个元素;A. n-iB. n-i+1C. n-i-1D. i5、非空的循环单链表head的尾结点p满足 A ;A. p->next==headB. p->next==NULLC. p==NULLD. p==head6、链表不具有的特点是 A ;A. 可随机访问任一元素B. 插入删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正比7、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是 C ;A. p->next=q;q->prior=p;p->next->prior=q;q->next=q;B. p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;C. q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;D. q->next=p->next;q->prior=p;p->next=q;p->next=q;8、线性表采用链式存储时,结点的存储地址 C ;A. 必须是连续的B. 必须是不连续的C. 连续与否均可D. 和头结点的存储地址相连续9、在一个长度为n的顺序表中删除第i个元素,需要向前移动 A 个元素;A. n-iB. n-i+1C. n-i-1D. i+110、线性表是n个 C的有限序列;A. 表元素B. 字符C. 数据元素D. 数据项11、从表中任一结点出发,都能扫描整个表的是 C ;A. 单链表B. 顺序表C. 循环链表D. 静态链表12、在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为 A ;A. OnB. O1C. On2D. On-113、线性表L=a1,a2,……,an,下列说法正确的是 D ;A. 每个元素都有一个直接前驱和一个直接后继B. 线性表中至少要有一个元素C. 表中诸元素的排列顺序必须是由小到大或由大到小D. 除第一个和最后一个元素外,其余每个元素都由一个且仅有一个直接前驱和直接后继14、一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的存储地址是 B ;A. 98B. 100C. 102D. 10615、在线性表的下列存储结构中,读取元素花费的时间最少的是 D ;A. 单链表B. 双链表C. 循环链表D. 顺序表16、在一个单链表中,若删除p所指向结点的后续结点,则执行 A ;A. p->next=p->next->next;B. p=p->next;p->next=p->next->next;C. p =p->next;D. p=p->next->next;17、将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为 C ;A. O1B. OnC. OmD. Om+n18、线性表的顺序存储结构是一种 A 存储结构;A. 随机存取B. 顺序存取C. 索引存取D. 散列存取19、顺序表中,插入一个元素所需移动的元素平均数是 D ;A. n-1/2B. nC. n+1D. n/210、循环链表的主要优点是 D ;A. 不再需要头指针B. 已知某结点位置后能容易找到其直接前驱C. 在进行插入、删除运算时能保证链表不断开D. 在表中任一结点出发都能扫描整个链表11、不带头结点的单链表head为空的判定条件是 A ;A. head==NULLB. head->next==NULL 带头结点判定条件C. head->next==head 循环链表判定条件D. head=NULL12、在下列对顺序表进行的操作中,算法时间复杂度为O1的是 A ;A. 访问第i个元素的前驱1<ni≤B. 在第i个元素之后插入一个新元素n≤1≤iC. 删除第i个元素n≤i1≤D. 对顺序表中元素进行排序13、已知指针p和q分别指向某单链表中第一个结点和最后一个结点;假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为 A ;A. q->next=s->next;s->next=p;B. s->next=p;q->next=s->next;C. p->next=s->next;s->next=q;D. s->next=q;p->next=s->next;14、在以下的叙述中,正确的是 C ;A. 线性表的顺序存储结构优于链表存储结构B. 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况C. 线性表的链表存储结构适用于频繁插入/删除数据元素的情况D. 线性表的链表存储结构优于顺序存储结构15、在表长为n的顺序表中,当在任何位置删除一个元素的概率相同时,删除一个元素所需移动的平均个数为 A ;A. n-1/2B. n/2C. n+1/2D. n16、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行 C ;A. s->next=p->next; p->next=s;B. p->next=s->next;s->next=p;C. q->next=s;s->next=p;D. p->next=s;s->next=q;17、在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是 B ;A. p=p->next;B. p->next=p->next->next;C. p->next=p;D. p=p->next->next;18、在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则 D ;A. p指向头结点B. p指向尾结点C. p的直接后继是头结点D. p的直接后继是尾结点1、设单链表的结点结构为data,next;已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:q->next=p->next ; p->next = q ;二、填空题答案:q->next=p->next p->next=q2、线性表的逻辑结构是线性结构 ,其所含元素的个数称为线性表的长度;答案:线性结构长度3、写出带头结点的双向循环链表L为空表的条件 ;答案:L->prior==L->next==L4、带头结点的单链表head为空的条件是 ;答案:head->next==NULL5、在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q = p->next;p->next= _q->next ___;三、判断题1、单链表不是一种随机存储结构;对2、在具有头结点的单链表中,头指针指向链表的第一个数据结点;错3、用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针;对4、顺序存储方式只能用于存储线性结构;错5、在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理位置上不一定是相邻的;错6、链式存储的线性表可以随机存取;错四、程序分析填空题1、函数GetElem实现返回单链表的第i个元素,请在空格处将算法补充完整;int GetElemLinkList L,int i,Elemtype e{LinkList p;int j;p=L->next;j=1;whilep&&j<i{1 ;++j;}ifp||j>i return ERROR;e= 2 ;return OK;}答案:1p=p->next 2p->data2、函数实现单链表的插入算法,请在空格处将算法补充完整;int ListInsertLinkList L,int i,ElemType e{LNode p,s;int j;p=L;j=0;whilep=NULL&&j<i-1{ p=p->next;j++;}ifp==NULL||j>i-1 return ERROR;s=LNode mallocsizeofLNode;s->data=e;1 ;2 ;return OK;}/ListInsert/答案:1s->next=p->next 2p->next=s3、函数ListDelete_sq实现顺序表删除算法,请在空格处将算法补充完整;int ListDelete_sqSqlist L,int i{int k;ifi<1||i>L->length return ERROR;fork=i-1;k<L->length-1;k++L->slistk= 1 ;2 ;return OK;}答案:1L->slistk+1 2 --L->Length4、函数实现单链表的删除算法,请在空格处将算法补充完整;int ListDeleteLinkList L,int i,ElemType s{LNode p,q;int j;p=L;j=0;while 1 &&j<i-1{p=p->next;j++;}ifp->next==NULL||j>i-1 return ERROR;q=p->next;2 ;s=q->data;freeq;return OK;}/listDelete/答案:1p->next=NULL 2p->next=q->next5、写出算法的功能;int Lhead{node head;int n=0;node p;p=head;whilep=NULL{ p=p->next;n++;}returnn;}答案:求单链表head的长度五、综合题1、编写算法,实现带头结点单链表的逆置算法;答案:void inventLnode head{Lnode p,q,r;ifhead->next return ERROR;p=head->next; q=p->next; p->next =NULL;whileq{ r=q->next;q->next=p;head->next=q;p=q;q=r;}}试编写一个算法,将一个顺序表逆置,并使用最少的辅助存储空间实现;答案:typedef struct {ElemType elem;int length;}Sqlist;Invert_listSqlist L/将顺序表进行逆置/{ int i; ElemType t;fori=0;i<L->length-1/2;i++{t=L->elemi;L->elem i= L->elem L->length-i-1;L->elem L->length -i-1=t;}/for/}/invert_list/2、有两个循环链表,链头指针分别为L1和L2,要求写出算法将L2链表链到L1链表之后,且连接后仍保持循环链表形式;答案:void mergeLnode L1, Lnode L2{Lnode p,q ;whilep->next=L1p=p->next;whileq->next=L2q=q->next;q->next=L1; p->next =L2;}3、设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data 域的值递增排序;答案:void assendingLnode head{Lnode p,q , r, s;p=head->next; q=p->next; p->next=NULL;whileq{r=q; q=q->next;ifr->data<=p->data{r->next=p; head->next=r; p=r; }else{whilep && r->data>p->data{s=p; p=p->next; }r->next=p; s->next=r;}p=head->next; }}4、编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度;答案:void linklist_cLnode head{Lnode p; p=head;ifp return ERROR;whilep->next=NULLp=p->next;p->next=head;}设单链表的长度数据结点数为N,则该算法的时间主要花费在查找链表最后一个结点上算法中的while循环,所以该算法的时间复杂度为ON;5、已知head为带头结点的单循环链表的头指针,链表中的数据元素依次为a1,a2,a3,a4,…,an,A为指向空的顺序表的指针;阅读以下程序段,并回答问题:1写出执行下列程序段后的顺序表A中的数据元素;2简要叙述该程序段的功能;ifhead->next=head{p=head->next;A->length=0;whilep->next=head{p=p->next;A->dataA->length ++=p->data;ifp->next=headp=p->next;}}答案:1 a2, a4, …,2将循环单链表中偶数结点位置的元素值写入顺序表A6、设顺序表va中的数据元数递增有序;试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性;答案:void Insert_sqSqlist va, ElemType x{int i, j, n;n=lengthva;ifx>=van-1van=x;else{i=0;whilex>vai i++;forj=n-1;j>=I;j--vaj+1=vaj;vai=x; }n++;}试编写一个算法,在一个递增有序排列的单链表中插入一个新结点x,并保持有序;struct Linknode{int data ;struct Linknode next ;};typedef struct Linknode Link;Link insertLink head{int i,e,j ;Link pointer,s;printf"\nplease input the elem of you want insert:";scanf"%d",&e;pointer= head;while pointer->next && e>=pointer->next->data/在链表中确定插入的位置/pointer=pointer->next;if pointer->next{s=Linkmallocsizeofstruct Linknode;s->data=e;s->next=NULL;pointer->next=s;}else {s=Linkmallocsizeofstruct Linknode;s->data=e; /为插入的结点建立链接关系/s->next=pointer->next;pointer->next=s;}/if/return head;}/LinkList_insert/7、假设线性表采用顺序存储结构,表中元素值为整型;阅读算法f2,设顺序表L=3,7,3,2,1,1,8,7,3,写出执行算法f2后的线性表L的数据元素,并描述该算法的功能;void f2SeqList L{int i,j,k;k=0;fori=0;i<L->length;i++{forj=0;j<k && L->datai=L->dataj;j++;ifj==k{ifk=iL->datak=L->datai;k++;}}L->length=k;}答案:3,7,2,1,8 删除顺序表中重复的元素8、已知线性表中的元素以值递增有序排列,并以单链表作存储结构;试写一算法,删除表中所有大于x且小于y的元素若表中存在这样的元素同时释放被删除结点空间; 答案:void Delete_listLnode head, ElemType x, ElemType y{Lnode p, q;ifhead return ERROR;p=head; q=p;whilep{ifp->data>x && p->data<y}i++;ifp==head{head=p->next; freep;p=head; q=p; }else{q->next=p->next; freep;p=q->next; }else{q=p; p=p->next; }}}9、在带头结点的循环链表L中,结点的数据元素为整型,且按值递增有序存放;给定两个整数a和b,且a<b,编写算法删除链表L中元素值大于a且小于b的所有结点;void Delete_listLnode head, ElemType a, ElemType b{Lnode p, q;ifhead->next return ERROR;p=head->next; q=p;whilep->next=head{ifp->data>x && p->data<y}i++;ifp==head{head=p->next; freep;p=head; q=p; }else{q->next=p->next; freep;p=q->next; }else{q=p; p=p->next; }}}试编写一个算法,将两个元素值递减排列的顺序表合并为一个非递增的顺序表;typedef struct {ElemType elem;int length;}Sqlist;Merge_listSqlist A, Sqlist B, Sqlist C{int j=0, k=0, i=0; C->length= A->length+ B->length;whilei<A->length&&j<B->lengthifA->elemi>B->elemj {C->elemk= A->elemi; i++; k++;} else { C->elemk= B->elemj; j++; k++;}whilei< A->length { C->elemk= A->elemi; i++; k++;}whilej< B->length { C->elemk= B->elemj; j++; k++;}}第三章栈和队列一、选择题1、一个栈的输入序列为:a,b,c,d,e,则栈的不可能输出的序列是 C ;A. a,b,c,d,eB. d,e,c,b,aC. d,c,e,a,bD. e,d,c,b,a2、判断一个循环队列Q最多n个元素为满的条件是 C ;A. Q->rear==Q->frontB. Q->rear==Q->front+1C. Q->front==Q->rear+1%nD. Q->front==Q->rear-1%n3、设计一个判别表达式中括号是否配对的算法,采用 D 数据结构最佳;A. 顺序表B. 链表C. 队列D. 栈4、带头结点的单链表head为空的判定条件是 B ;A. head==NULLB. head->next==NULLC. head->next=NULLD. head=NULL5、一个栈的输入序列为:1,2,3,4,则栈的不可能输出的序列是 D ;A. 1243B. 2134C. 1432D. 4312E. 32146、若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0,3;当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为B ;A. 1和5B. 2和4C. 4和2D. 5和17、队列的插入操作是在 A ;A. 队尾B. 队头C. 队列任意位置D. 队头元素后8、循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是A ;A. front==rearB. front==0C. rear==0D. front=rear+19、一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是 A ;A. S->top=e;S->top++;B. S->top++;S->top=e;C. S->top=eD. S->top=e;10、表达式ab+c-d的后缀表达式是B ;A. abcd+-B. abc+d-C. abc+d-D. -+abcd11、将递归算法转换成对应的非递归算法时,通常需要使用 B 来保存中间结果;A. 队列B. 栈C. 链表D. 树12、栈的插入和删除操作在 B ;A. 栈底B. 栈顶C. 任意位置D. 指定位置13、五节车厢以编号1,2,3,4,5顺序进入铁路调度站栈,可以得到 C 的编组;A. 3,4,5,1,2B. 2,4,1,3,5C. 3,5,4,2,1D. 1,3,5,2,414、判定一个顺序栈S栈空间大小为n为空的条件是 A ;A. S->top==0B. S->top=0C. S->top==nD. S->top=n15、在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作为C ;A. front=front->nextB. s->next=rear;rear=sC. rear->next=s;rear=s;D. s->next=front;front=s;16、一个队列的入队序列是1,2,3,4,则队列的出队序列是 A ;A. 1,2,3,4B. 4,3,2,1C. 1,4,3,2D. 3,4,1,217、依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是 C ;A. aB. bC. cD. d18、正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是D ;A. top不变B. top=0C. top=top+1D. top=top-119、判断一个循环队列Q空间大小为M为空的条件是 A ;A. Q->front==Q->rearB. Q->rear-Q->front-1==MC. Q->front+1=Q->rearD. Q->rear+1=Q->front20、设计一个判别表达式中左右括号是否配对出现的算法,采用 C 数据结构最佳;A. 线性表的顺序存储结构B. 队列C. 栈D. 线性表的链式存储结构21、当用大小为N的数组存储顺序循环队列时,该队列的最大长度为 C ;A. NB. N+1C. N-1D. N-2解析:队列的头指针指向的是第一个元素的前一个结点,而不是指向第一个元素,一次队列的头指针要占用一个结点长度;22、队列的删除操作是在 A ;A. 队首B. 队尾C. 队前D. 队后23、若让元素1,2,3依次进栈,则出栈次序不可能是 C ;A. 3,2,1B. 2,1,3C. 3,1,2D. 1,3,224、循环队列用数组A0,m-1存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是 A ;A. rear-front+m%mB. rear-front+1C. rear-front-1D. rear-front25、在解决计算机主机和打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取走数据打印;该缓冲区应该是一个 B 结构;A. 堆栈B. 队列C. 数组D. 线性表解析:先进入缓冲区的文件先被打印,选择先进先出的结构,即队列;26、栈和队列都是 C ;A. 链式存储的线性结构B. 链式存储的非线性结构C. 限制存取点的线性结构D. 限制存取点的非线性结构解析:栈是只允许在栈顶进行插入和删除操作的线性表,队列是只允许在队头进行删除,在队尾进行删除操作的线性表27、在一个链队列中,假定front和rear分别为队头指针和队尾指针,删除一个结点的操作是 A ;A. front=front->nextB. rear= rear->nextC. rear->next=frontD. front->next=rear28、队和栈的主要区别是 D ;A. 逻辑结构不同B.存储结构不同C. 所包含的运算个数不同D. 限定插入和删除的位置不同二、填空题1、设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈的容量至少应该是 ;答案:32、一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为 ;答案:rear-front+M%M3、在具有n个元素的循环队列中,队满时具有个元素;答案:n-14、设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为 ;答案:615、已知循环队列的存储空间大小为20,且当前队列的头指针和尾指针的值分别为8和3,且该队列的当前的长度为 ;答案:15三、判断题1、栈和队列都是受限的线性结构;对2、在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构;错3、以链表作为栈的存储结构,出栈操作必须判别栈空的情况;对四、程序分析填空题1、已知栈的基本操作函数:int InitStackSqStack S; 连接 B. 求子串 C. 模式匹配D. 判断子串2、已知串S=’aaab’,则next数组值为A ;A. 0123B. 1123C. 1231D. 12113、串与普通的线性表相比较,它的特殊性体现在 C ;A. 顺序的存储结构B. 链式存储结构C. 数据元素是一个字符D. 数据元素任意4、设串长为n,模式串长为m,则KMP算法所需的附加空间为 A ;A. OmB. OnC. OmnD. Onlogm25、空串和空格串 B ;A. 相同B. 不相同C. 可能相同D. 无法确定6、与线性表相比,串的插入和删除操作的特点是 A ;A. 通常以串整体作为操作对象B. 需要更多的辅助空间C. 算法的时间复杂度较高D. 涉及移动的元素更多7、设SUBSTRS,i,k是求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=’Beijing&Nanjing’,SUBSTRS,4,5= B ;A. ‘ijing’B. ‘jing&’C.‘ingNa’D. ‘ing&N’二、判断题对1、造成简单模式匹配算法BF算法执行效率低的原因是有回溯存在;对2、KMP算法的最大特点是指示主串的指针不需要回溯;对3、完全二叉树某结点有右子树,则必然有左子树;三、填空题1、求子串在主串中首次出现的位置的运算称为 ;答案:模式匹配2、设s=’I︺AM︺A︺TEACHER’,其长度是 ;答案:143、两个串相等的充分必要条件是两个串的长度相等且 ;答案:对应位置的字符也相同四、程序填空题1、函数kmp实现串的模式匹配,请在空格处将算法补充完整;int kmpsqstring s,sqstring t,int start,int next{int i=start-1,j=0;whilei<s->len&&j<t->lenifj==-1||s->datai==t->dataj{i++;j++;}else j= nextj ;ifj>=t->lenreturn i-t->len ;elsereturn-1;}2、函数实现串的模式匹配算法,请在空格处将算法补充完整;int index_bfsqstrings,sqstring t,int start{int i=start-1,j=0;whilei<s->len&&j<t->lenifs->datai==t->dataj{i++;j++;}else{i= i-j+1 ;j=0;}ifj>=t->lenreturn i-t->len+1 ;elsereturn -1;}}/listDelete/3、写出下面算法的功能;int functionSqString s1,SqString s2{int i;fori=0;i<s1->length&&i<s1->length;i++ifs->datai=s2->dataireturn s1->datai-s2->datai;return s1->length-s2->length;}答案:.串比较算法4、写出算法的功能;int funsqstring s,sqstring t,int start{int i=start-1,j=0;whilei<s->len&&j<t->lenifs->datai==t->dataj{i++;j++;}else{i=i-j+1;j=0;}ifj>=t->lenreturn i-t->len+1;elsereturn -1;}答案:串的模式匹配算法第五章数组和广义表一、选择题1、设广义表L=a,b,c,则L的长度和深度分别为C ;A. 1和1B. 1和3C. 1和2D. 2和32、广义表a,a的表尾是 B ;A. aB. aC.D. a3、稀疏矩阵的常见压缩存储方法有 C 两种;A. 二维数组和三维数组B. 三元组和散列表C. 三元组和十字链表D. 散列表和十字链表4、一个非空广义表的表头 D ;A. 不可能是子表B. 只能是子表C. 只能是原子D. 可以是子表或原子5、数组A0..5,0..6的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A55的地址是 A ;A. 1175B. 1180C. 1205D. 12106、广义表G=a,bc,d,e,f,g 的长度是 A ;A. 3B. 4C. 7D. 87、采用稀疏矩阵的三元组表形式进行压缩存储,若要完成对三元组表进行转置,只要将行和列对换,这种说法 B ;A. 正确B. 错误C. 无法确定D. 以上均不对8、广义表a,b,c 的表尾是 B ;A. b,cB. b,cC. cD. c9、常对数组进行两种基本操作是 C ;A. 建立和删除B. 索引和修改C. 查找和修改D. 查找与索引10、对一些特殊矩阵采用压缩存储的目的主要是为了 D ;A. 表达变得简单B. 对矩阵元素的存取变得简单C. 去掉矩阵中的多余元素D. 减少不必要的存储空间的开销11、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为 B ;A. 13B. 33C. 18D. 4012、设矩阵A 是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B1,nn-1/2中,对下三角部分中任一元素ai,ji>=j,在一维数组B 的下标位置k 的值是A ;A. ii-1/2+j-1B. ii-1/2+jC. ii+1/2+j-1D. ii+1/2+j13、广义表A=a,a 的表头是 B ;A. aB. aC. bD. a14、稀疏矩阵一般的压缩存储方法有两种,即 C ;A. 二维数组和三维数组B. 三元组和散列C. 三元组和十字链表D. 散列和十字链表15、假设以三元组表表示稀疏矩阵,则与如图所示三元组表对应的4×5的稀疏矩阵是注:矩阵的行列下标均从1开始 B ;A. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000000000706080B. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00000004053000706080C. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000073000006080D. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00000304050000706080 16、以下有关广义表的表述中,正确的是 A ;A. 由0个或多个原子或子表构成的有限序列B. 至少有一个元素是子表C. 不能递归定义D. 不能为空表17、对广义表L=a,b,c,d,e,f 执行headtailheadtailL 操作的结果是 D ;A. 的B. eC. eD. e,f二、判断题错 1、广义表中原子个数即为广义表的长度;错 2、一个稀疏矩阵采用三元组表示,若把三元组中有关行下标与列下标的值互换,并把mu 和nu 的值进行互换,则完成了矩阵转置;对 3、稀疏矩阵压缩存储后,必会失去随机存取功能;错 4、广义表的长度是指广义表中括号嵌套的层数;对 5、广义表是一种多层次的数据结构,其元素可以是单原子也可以是子表;三、填空题1、已知二维数组Amn 采用行序为主方式存储,每个元素占k 个存储单元,并且第一个元素的存储地址是LOCA00,则Aij 的地址是LocA00+iN+jk ;2、广义表运算式HEADTAILa,b,c,x,y,z 的结果是:x,y,z ;3、二维数组,可以按照 按行序为主和按列序为主 两种不同的存储方式;4、稀疏矩阵的压缩存储方式有: 三元组表 和 十字链表法 ;四、综合题1、现有一个稀疏矩阵,请给出它的三元组表;答案:第六章 树一、选择题1、二叉树的深度为k,则二叉树最多有 C 个结点;A. 2kB. 2k-1C. 2k -1D. 2k-12、用顺序存储的方法,将完全二叉树中所有结点按层逐个从左到右的顺序存放在一维数组R1..N中,若结点Ri有右孩子,则其右孩子是 B ;A. R2i-1B. R2i+1C. R2iD. R2/i3、设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前面的条件是 B ;A. a在b的右方B. a在b的左方C. a是b的祖先D. a是b的子孙4、设一棵二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树先序遍历序列为 D ;A. adbceB. decabC. debacD. abcde5、在一棵具有5层的满二叉树中结点总数为 A ;A. 31B. 32C. 33D. 166、由二叉树的前序和后序遍历序列 B 惟一确定这棵二叉树;A. 能B. 不能解析:二叉树的前序和中序遍历序列可以唯一确定一颗二叉树;二叉树的中序和后序遍历序列可以唯一确定一颗二叉树;而二叉树的前序和后序遍历序列不能惟一确定一棵二叉树7、某二叉树的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为C ;A. 3B. 2C. 4D. 58、若以{4,5,6,7,8}作为权值构造哈夫曼树,则该树的带权路径长度为 C ;A. 67B. 68C. 69D. 709、将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为 A ;A. 98B. 99C. 50D. 4810、表达式ab+c-d的后缀表达式是 B ;A. abcd+-B. abc+d-C. abc+d-D. -+abcd11、对某二叉树进行先序遍历的结果为ABDEFC,中序遍历的结果为DBFEAC,则后序遍历的结果是 B ;A. DBFEACB. DFEBCAC. BDFECAD. BDEFAC12、树最适合用来表示 C ;A. 有序数据元素B. 无序数据元素C. 元素之间具有分支层次关系的数据D. 元素之间无联系的数据13、表达式AB+C/D-E+F的后缀表达式是C ;A. AB+C/D-E+FB. ABC+D/E-F+C. ABC+DE-F+/D. ABCDED+/-+14、在线索二叉树中,t所指结点没有左子树的充要条件是 B ;A. t->left==NULLB. t->ltag==1C. t->ltag==1&&t->left==NULLD. 以上都不对15、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序 A ;A. 不发生改变B. 发生改变C. 不能确定D. 以上都不对16、假定在一棵二叉树中,度为2的结点数为15,度为1的结点数为30,则叶子结点数为B个;A. 15B. 16C. 17D. 4717、在下列情况中,可称为二叉树的是 C ;。
大工20秋《数据结构》在线作业2【答案】
大工20秋《数据结构》在线作业2
红字部分为答案!
单选题
1.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()。
A.9
B.11
C.15
D.不确定
2.具有10个叶结点的二叉树中有()个度为2的结点。
A.8
B.9
C.10
D.11
3.设无向图的顶点个数为n,则该图最多有()条边。
A.n-1
B.n(n-1)/2
C.n(n+1)/2
D.0
4.一个n个顶点的连通无向图,其边的个数至少为()。
A.n-1
B.n
C.n+1
D.nlogn
5.n个结点的完全有向图含有边的数目()。
A.n*n
B.n(n+1)
C.n/2
D.n*(n-l)
6.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()。
A.求子串
B.联接
C.模式匹配
D.求串长
7.串的长度是指()。
A.串中所含不同字母的个数
B.串中所含字符的个数
C.串中所含不同字符的个数
D.串中所含非空格字符的个数
8.树的后根遍历序列等同于该树对应的二叉树的()。
A.先序序列
B.中序序列。
数据结构题及参考答案
数据结构作业题作业题(一)一、单项选择题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 )。
大工18春数据结构在线作业3辅导资料
大工18春《数据结构》在线作业31、A2、A3、B4、A5、A一、判断题共10题,50分1、散列文件中存放一组记录的存储单位称为桶。
A对B错正确答案是:A2、散列方法的查找性能用平均查找长度ASL来衡量。
A对B错正确答案是:A3、二分查找对线性表的存储结构无任何要求。
A对B错正确答案是:B4、折半查找只能在有序的顺序表上进行而不能在有序链表上进行。
A对B错正确答案是:A5、快速排序算法是一种不稳定的算法。
A对B错正确答案是:A6、直接选择排序属于选择类排序,是一种稳定的排序方法。
A对B错正确答案是:B7、对于一个堆,按二叉树层次进行遍历可以得到一个有序序列。
A对B错正确答案是:B8、折半查找的查找速度一定比顺序查找法的查找速度快。
A对B错正确答案是:B9、堆排序是一种不稳定的排序方法。
A对B错正确答案是:A10、若待排序记录已按排序码基本有序,则应采用直接插入排序或起泡排序。
A对B错正确答案是:A二、单选题共10题,50分1、在长度为n的顺序表中进行顺序查找,查找失败时需与关键字比较次数是()。
AnB1Cn-1Dn+1正确答案是:D2、对线性表进行顺序查找时,要求线性表的存储结构是()。
A倒排表B索引表C顺序表或链表D散列表正确答案是:C3、对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的查找长度为()。
A2B3C4D5正确答案是:C4、如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是()。
A分块B顺序C折半D哈希正确答案是:A5、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。
A插入排序B冒泡排序C希尔排序D选择排序正确答案是:A6、排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。
数据结构习题及答案合集
第1章绪论练习题答案判断题1. 数据元素是数据的最小单位。
( × )2. 记录是数据处理的最小单位。
(× )3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系。
(× )4.算法的优劣与算法描述语言无关,但与所用计算机有关。
(× )5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
(√)6.数据的物理结构是指数据在计算机内的实际存储形式。
(√ )7. 数据结构的抽象操作的定义与具体实现有关。
(× )第2章线性表练习题答案一、填空1. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。
2. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。
3. 在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。
4. 在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
5.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为O(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)。
二、判断正误(×)1. 链表的每个结点中都恰好包含一个指针。
答:错误。
链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
(×)2. 链表的物理存储结构具有同链表一样的顺序。
错,链表的存储结构特点是无序,而链表的示意图有序。
(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
错,链表的结点不会移动,只是指针内容改变。
(×)4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大工20春《数据结构》在线作业3
试卷总分:100 得分:100
咨询答案请看昵称
咨询答案请看昵称
一、单选题 (共 10 道试题共 50 分)
1.采用顺序查找方法查找长度为n的线性表时成功查找时的平均查找长度为()。
A.n
B.n/2
C.(n+1)/2
D.(n-1)/2
2.对线性表进行折半查找时要求线性表必须()。
A.以顺序方式存储
B.以链接方式存储
C.以顺序方式存储,且结点按关键字有序排列
D.以链表方式存储,且结点按关键字有序排列
3.有n个元素的数组查找其中最大值的元素一般需要()次元素的比较。
A.1
B.n
C.n+1
D.n-1
4.查找效率最高的二叉排序树是()。
A.所有结点的左子树都为空的二叉排序树
B.所有结点的右子树都为空的二叉排序树
C.平衡二叉树
D.没有左子树的二叉排序数
5.在哈希查找过程中可用()来处理冲突。
A.除留余数法
B.数字分析法
C.线性探测法
D.关键字比较法
6.从19个记录中查找其中的某个记录最多进行4次关键字的比较则采用的查找方法只可能是()。
A.顺序查找
B.折半查找
C.哈希查找
D.二叉排序树查找
7.以下排序算法中()在最后一趟排序结束之前可能所有元素都没有放到其最终位置上。
A.快速排序
B.希尔排序
C.堆排序
D.冒泡排序
8.对有n个记录的表进行直接插入排序在最坏情况下需要比较()次关键字。
A.n-1
B.n
C.n+1
D.n(n-1)/2
9.设有1000个无序的元素希望用最快的速度挑选出其中前10个最大的元素最好选用()排序法。
A.冒泡排序
B.快速排序
C.堆排序
D.基数排序
10.以下()方法在数据基本有序时效率最好。
A.快速排序
B.冒泡排序
C.堆排序
D.希尔排序
二、判断题 (共 10 道试题共 50 分)
11.折半查找所对应的判定树是一棵理想平衡树。
12.设查找表各元素的查找概率都相等则分块查找的平均查找长度不仅与要查找的元素个数有
关而且与每块中的元素个数有关。
13.当一棵二叉树的中序遍历序列是单调递增时它一定是二叉查找树。
14.在二叉查找树中新结点总是作为叶结点插入。
15.在二叉查找树中新插入的关键码总是处于最底层。
16.在任何情况下起泡排序比快速排序的速度慢。
17.快速排序每趟都让一个元素放在它最终应在的位置。
18.快速排序在所有排序方法中最快而且所需附加存储空间也最少。
19.归并排序是原地排序。
20.就平均性能而言最好的排序方法是快速排序。