A.1 , 2 , 3 , 4 , 5 , 6
B.2 , 1 , 3 , 4 , 5 , 6
C.3 , 4 , 2 , 1 , 5 , 6
D.4 , 3 , 2 , 1 , 5 , 6
解:D
解析:最大长度为3,若开始是4出栈,意味着1,2,3,4已经进栈,超出3所以不可能
解:对
解析:朴素的匹配只匹配一次,不用计算next数组,所以速度更快
A.100 B.40 C.55 D.80
解:C
解析:主对角线都存:10个,剩下的90个只存一半45个,共55个
解:4 5
解析:
数组名有两重属性
1.数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象
2.某些情况下自动退化成指向第一个元素的常量指针
本题中:
A+1为指向第二个元素的常量指针
*(A+1)为第二个元素,(第二个元素为int [3],即{4,5,6})
同时对象名也是指向第一个元素的常量指针。
所以*(A+1)也是指向元素4的指针,
那么*(A+1)+1为指向元素5的指针。
解:1178
解析:
如果以任意的A[c1..d1,c2..d2]A[c1..d1,c2..d2](其中c1、c2c1、c2表示基地址元素;d1−c1+1、d2−c2+1d1−c1+1、d2−c2+1表示数组的行数和列数)可得:address(aij)=address(ac1c2)+((j−c2)(d1−c1+1)+(i−c1))e (每个元素占用空间ee个单位)
如题意:c1=c2=1,d1=4,d2=6
则address(a34)=a11+(3*4+2)*4
求得a11
解:对
解析:置换-选择排序就是一种减小n的、在外部排序中创建初始归并段时用到的算法。它可以让初始归并段的长度增减,从而减小初始归并段的段数(因为总的记录数是一定的)
A.快速排序算法平均速度比插入排序平均速度快
B.堆排序在每一趟排序过程中,都会有一个元素被放置在最终位置上
C.在10000个无序的元素中查找最大的10个元素,使用快速排序最快
D.插入排序是一种稳定的排序算法
解:C
解析:使用堆排序是最快
A.不能是子表
B.只能是子表
C.只能是原子
D.是原子或子表
解:B
解析:
(1)《数据结构》对广义表的表头和表尾是这样定义的:
如果广义表LS=(a1,a2...an)非空,则 a1是LS的表头,其余元素组成的表(a2,a3,..an)是称为LS的表尾。
根据定义,非空广义表的 表头是一个元素,它 可以是原子也可以是一个子表, 而表尾则必定是子表。例如:LS=(a,b),表头为a,表尾是(b)而不是b.另外:LS=(a)的表头为a,表尾为空表().
(2)非空广义表,除表头外,其余元素构成的表称为表尾,所以非空广义表尾一定是个表
A.e3,e1,e4,e2
B.e2,e4,e3,e1
C.e2,e3,e4,e1
D.任意顺序都有可能
解:BC
解析:
栈的规则:先进后出
例如进栈序列为:1,2,3,4
全部进栈完成再出栈的序列则为:4,3,2,1
注:一个元素进栈后可以马上出栈,不用等全部进栈
例如:2这个元素一进就想出了,后面的3,4正常进栈再出栈。
那么出栈顺序就是:2,4,3,1 (1是第一个进的,进的时候也没有立刻出去,所以被压在栈底,最后才能出去)
例如:2这个元素一进就想出了,后面的3一进也想立刻想出去了,后面的4跟着进栈
那么出栈顺序就是:2,3,4,1 (2,3都进了立刻出 所以这时4压着的是1,所以出栈顺序是4在前面)
A.25,10,15,20
B.25,10,15,18,20
C.10,30,20
D.10,30,25,20
解;ABCD
解析:
A:首先根节点为25,20比25小搜索其左子树,找到10比25小不矛盾,20比10大搜索其右子树,找到15比10大不矛盾,20比15大搜索其右子树找到20,正确
B:首先根节点25,20比25小搜索其左子树,找到10比25小不矛盾,20比10大搜索其右子树,找到15比10大不矛盾, 20比15大搜索其右子树,找到18比15大不矛盾, 20比***搜索其右子树,找到20,正确
C:首先根节点为10,20比10大搜索其右子树,找到30比10大不矛盾,20比30小搜索其左子树,找到20,正确
D:首先根节点为10, 20比10大搜索其右子树,找到30比10大不矛盾,20比30小搜索其左子树,找到25比30小不矛盾,20比25小搜索其左子树找到20,正确