1、工程图学总复习题数据结构和算法的基本概念一判断题(下列各题,正确的请在前面的括号内打;错误的打 )()(1)数据的逻辑结构与数据元素本身的内容和形式无关。()(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。()(3)数据元素是数据的最小单位。()(4)数据的逻辑结构和数据的存储结构是相同的。()(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。()(6)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。()(7)数据的存储结构是数据的逻辑结构的存储映像。()(8)数据的物理结构是指数据在计算机内实际的存储形式。()(9)数据的逻辑结构是依赖于计
2、算机的。()(10)算法是对解题方法和步骤的描述。三选择题(1)数据结构通常是研究数据的( A )及它们之间的相互联系。 A. 存储结构和逻辑结构 B. 存储和抽象 C. 联系和抽象 D. 联系与逻辑(2)在逻辑上可以把数据结构分成:( C )。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构(3)数据在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为( C )。 A. 存储结构 B. 逻辑结构 C. 顺序存储结构 D. 链式存储结构(4)非线性结构中的每个结点( D )。无直接前趋结点无直接后继结点只有一个直接前趋结
3、点和一个直接后继结点可能有多个直接前趋结点和多个直接后继结点(5)链式存储的存储结构所占存储空间( A )。 A 分两部分,一部分存放结点的值,另一部分存放表示结点间关系的指针 B 只有一部分,存放结点的值 C 只有一部分,存储表示结点间关系的指针 D 分两部分,一部分存放结点的值,另一部分存放结点所占单元素(6)算法的计算量大小称为算法的( C )。 A. 现实性 B. 难度 C. 时间复杂性 D. 效率(7)数据的基本单位是( B )。 A. 数据结构 B. 数据元素 C. 数据项 D. 文件(8)每个结点只含有一个数据元素,所有存储结点相继存放在一个连续的存储区里,这种存储结构称为( A
4、 )结构。 A. 顺序存储 B. 链式存储 C. 索引存储 D. 散列存储(9)每一个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是( B )存储方式。 A. 顺序 B. 链式 C. 索引 D. 散列(10)以下任何两个结点之间都没有逻辑关系的是( D )。 A. 图形结构 B. 线性结构 C. 树形结构 D. 集合(11)在数据结构中,与所使用的计算机无关的是( C )。 A. 物理结构 B. 存储结构 C. 逻辑结构 D. 逻辑和存储结构(12)下列四种基本逻辑结构中,数据元素之间关系最弱的是( A )。 A. 集合 B. 线性结构 C. 树形结构 D. 图形结构(13)与数据
5、元素本身的形式、内容、相对位置、个数无关的是数据的( A )。 A. 逻辑结构 B. 存储结构 C. 逻辑实现 D. 存储实现(14)每一个存储结点只含有一个数据元素,存储结点存放在连续的存储空间,另外有一组指明结点存储位置的表,该存储方式是( C )存储方式。 A. 顺序 B. 链式 C. 索引 D. 散列(15)算法能正确的实现预定功能的特性称为算法的( A )。 A. 正确性 B. 易读性 C. 健壮性 D. 高效性(16)算法在发生非法操作时可以作出处理的特性称为算法的( C )。 A. 正确性 B. 易读性 C. 健壮性 D. 高效性(17)下列时间复杂度中最坏的是( D )。 A.
6、 O(1) B. O( n) C. O(log2n) D. O(n2)(18)下列算法的时间复杂度是( D )。 for (i=0;in;i+) for (j=0;iprior-next=p-next 。在如图所示的链表中,若在指针P所在的结点之后插入数据域值为a和b的两个结点,则可用下列两个语句: S-next-next=P-next; 和P-next=S;来实现该操作。ab 三选择题(1)在具有n个结点的单链表中,实现( A )的操作,其算法的时间复杂度都是O(n)。A遍历链表或求链表的第i个结点 B在地址为P的结点之后插入一个结点C删除开始结点 D删除地址为P的结点的后继结点(2)设a、
7、b、c为三个结点,p、10、20分别代表它们的地址,则如下的存储结构称为( B )。循环链表 B 单链表 C双向循环链表 D 双向链表(3)单链表的存储密度( C )。 A 大于1 B 等于1 C小于1 D 不能确定(4)已知一个顺序存储的线性表,设每个结点占m个存储单元,若第一个结点的地址为B,则第i个结点的地址为( A )。A B+(i-1)*m BB+i*m C B-i*m D B+(i+1)*m(5)在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为( B )。AO(1) BO(n) CO(n2) DO(log2n)(6)设Llink、Rlink分别为循环双链表结点的左指针和右指
8、针,则指针P所指的元素是双循环链表L的尾元素的条件是( D )。AP= L BP-Llink= L CP= NULL DP-Rlink=L (7) 两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素前驱的条件是( B )。AP-next=Q-next BP-next= Q CQ-next= P DP= Q(8)用链表存储的线性表,其优点是( C )。A 便于随机存取 B 花费的存储空间比顺序表少C 便于插入和删除 D 数据元素的物理顺序与逻辑顺序相同(9)在单链表中,增加头结点的目的是( C )。A 使单链表至少有一个结点 B 标志表中首结点的位置C 方便运算的实现 D 说明该单
9、链表是线性表的链式存储结构(10)下面关于线性表的叙述中,错误的是( D )关系。A顺序表必须占一片地址连续的存储单元 B顺序表可以随机存取任一元素C链表不必占用一片地址连续的存储单元 D链表可以随机存取任一元素 (11)L是线性表,已知LengthList(L)的值是5,经DelList(L,2)运算后,LengthList(L)的值是( C )。A2 B3 C4 D5 (12)单链表的示意图如下: LABCD 指向链表Q结点的前趋的指针是( B )。AL BP CQ DR (13)设p为指向单循环链表上某结点的指针,则*p的直接前驱( C )。A找不到 B查找时间复杂度为O(1)C查找时间
10、复杂度为O(n) D查找结点的次数约为n(14)等概率情况下,在有n个结点的顺序表上做插入结点运算,需平均移动结点的数目为( C )。An B(n-1)/2 C n/2 D(n+1)/2 (15)在下列链表中不能从当前结点出发访问到其余各结点的是( C )。A双向链表 B单循环链表 C单链表 D双向循环链表(16)在顺序表中,只要知道( D ),就可以求出任一结点的存储地址。A基地址 B结点大小 C 向量大小 D基地址和结点大小 (17)在双链表中做插入运算的时间复杂度为( A )。AO(1) BO(n) CO(n2) DO(log2n)(18)链表不具备的特点是( A )。A随机访问 B不必
11、事先估计存储空间C插入删除时不需移动元素 D所需空间与线性表成正比(19)以下关于线性表的论述,不正确的为( C )。A线性表中的元素可以是数字、字符、记录等不同类型B线性顺序表中包含的元素个数不是任意的C线性表中的每个结点都有且仅有一个直接前趋和一个直接后继D存在这样的线性表,即表中没有任何结点 (20)在( B )的运算中,使用顺序表比链表好。A插入 B根据序号查找 C 删除 D根据元素查找 栈和队列一判断题(下列各题,正确的请在前面的括号内打;错误的打 )()(1)栈是运算受限制的线性表。()(2)在栈空的情况下,不能作出栈操作,否则产生下溢出。()(3)栈一定是顺序存储的线性结构。()
12、(4)栈的特点是“后进先出”。()(5)空栈就是所有元素都为0的栈。()(6)在C或C+语言中设顺序栈的长度为MAXLEN,则top=MAXLEN时表示队满。()(7)链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况。()(8)一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D。()(9)递归定义就是循环定义。()(10)将十进制数转换为二进制数是栈的典型应用之一。二填空题(1)在栈结构中,允许插入、删除的一端称为 栈顶 。(2)在顺序栈中,当栈顶指针top=-1时,表示 栈空 。(3)在有n个元素的栈中,进栈操作的时间复杂度为 O(1)。(4)在栈中,出栈操作的时间复杂
13、度为: O(1) 。(5)已知表达式,求它的后缀表达式是 栈 的典型应用。 (6)在一个链栈中,若栈顶指针等于NULL,则表示 栈空 。(7)向一个栈顶指针为top的链栈插入一个新结点*p时,应执行 p-next=top; 和top=p;操作。(8)顺序栈S存储在数组 S-data0.MAXLEN-1中,进栈操作时要执行的语句有:S-top + 。(或= S-top+1)(9)链栈LS,指向栈顶元素的指针是 LS-next 。(10)从一个栈删除元素时,首先取出 栈顶元素 ,然后再移动栈顶指针。(11)由于链栈的操作只在链表的头部进行,所以没有必要设置 头 结点。(12)已知顺序栈S,在对S进
14、行进栈操作之前首先要判断 栈是否满 。(13)已知顺序栈S,在对S进行出栈操作之前首先要判断 栈是否空 。(14)若内存空间充足, 链 栈可以不定义栈满运算。(15)链栈LS是空的条件是 LS-next=NULL 。(16)链栈LS的栈顶元素是链表的 首 元素。(17)同一栈的各元素的类型 相同 。(18)若进栈的次序是A、B、C、D、E,执行三次出栈操作以后,栈顶元素为 B 。(19)A+B/C-D*E的后缀表达式是: ABC/+DE*- 。(20)四个元素按A、B、C、D顺序进S栈,执行两次Pop(S,x)运算后,x的值是 C 。三选择题(1)插入和删除只能在一端进行的线性表,称为( C
15、)。 A队列 B循环队列 C栈 D循环栈 (2)设有编号为1,2,3,4的四辆列车,顺序进入一个栈结构的站台,下列不可能的出站顺序为 ( D ) A1234 B1243 C1324 D1423(3)如果以链表作为栈的存储结构,则出栈操作时( B ) A必须判别栈是否满 B必须判别栈是否空 C必须判别栈元素类型 D队栈可不做任何判别(4)元素A,B,C,D依次进栈以后,栈顶元素是( D ) AA BB CC DD(5)顺序栈存储空间的实现使用( B )存储栈元素。 A链表 B数组 C循环链表 D变量(6)在C或C+语言中,一个顺序栈一旦被声明,其占用空间的大小( A )。 A已固定 B不固定 C
16、可以改变 D动态变化(7)带头结点的链栈LS的示意图如下,栈顶元素是( A ) LSHABCD AA BB CC DD(8)链栈与顺序栈相比,有一个比较明显的优点是( B )。A插入操作更加方便 B通常不会出现栈满的情况。C不会出现栈空的情况 D删除操作根加方便(9)从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行下列 ( D )命令。 Ax=top;top=top-next; Btop=top-next;x=top-data; Cx=top-data; Dx=top-data;top=top-next;(10)在一个栈顶指针为HS的链栈中,将一个S指针所指的结点入栈
17、,应执行下列 ( B )命令。 AHS-next=S; BS-next=HS-next;HS-next=S; CS-next=HS-next;HS=S; DS-next=HS;HS=HS-next;(11)四个元素按A、B、C、D顺序进S栈,执行两次Pop(S,x)运算后,栈顶元素的值是( B )。 AA BB CC DD(12)元素A,B,C,D依次进栈以后,栈底元素是( A )。 AA BB CC DD(13)经过下列栈的运算后,再执行ReadTop(s)的值是( A )。 InitStack(s) (初始化栈);Push(s,a);Push(s,b); Pop(s)Aa Bb C1 D0
18、(14)经过下列栈的运算后,x的值是( B )。 InitStack(s) (初始化栈);Push(s,a);Push(s,b); ReadTop(s);Pop(s,x);Aa Bb C1 D0(15)经过下列栈的运算后,x的值是( B )。 InitStack(s) (初始化栈);Push(s,a);Pop(s,x);Push(s,b);Pop(s,x);Aa Bb C1 D0(16)经过下列栈的运算后,SEmpty(s)的值是( C )。 InitStack(s) (初始化栈); Push(s,a); Push(s,b);Pop(s,x); Pop(s,x);Aa Bb C1 D0(17)
19、向顺序栈中压入元素时,( B )。先存入元素,后移动栈顶指针 B先移动栈顶指针,后存入元素C谁先谁后无关紧要 D同时进行(18)初始化一个空间大小为5的顺序栈S后,S-top的值是( B )。 A0 B-1 C不再改变 D动态变化(19)一个栈的入栈次序ABCDE,则栈的不可能的输出序列是 ( C )。 AEDCBA BDECBA CDCEAB DABCDE(20)设有一个顺序栈S,元素A,B,C,D,E,F,依次进栈,如果六个元素出栈的顺序是B,D,C,F,E,A,则栈的容量至少应是 ( A )。 A3 B4 C5 D 6队列一判断题(下列各题,正确的请在前面的括号内打;错误的打 )()(1
20、)队列是限制在两端进行操作的线性表。()(2)判断顺序队列为空的标准是头指针和尾指针都指向同一个结点。()(3)在链队列上做出队操作时,会改变front指针的值。()(4)在循环队列中,若尾指针rear大于头指针front,其元素个数为rear- front。()(5)在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是p=h。()(6)链队列在一定范围内不会出现队满的情况。()(7)在循环链队列中无溢出现象。()(8)栈和队列都是顺序存储的线性结构。()(9)在队列中允许删除的一端称为队尾。()(10)顺序队和循环队关于队满和队空的判断条件是一样的。二填空题在队列中存取数据应遵循的
21、原则是 先进先出 。 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。在队列中,允许插入的一端称为 队尾 。在队列中,允许删除的一端称为 队首(或队头) 。队列在进行出队操作时,首先要判断队列是否为 空 。顺序队列在进行入队操作时,首先要判断队列是否为 满 。顺序队列初始化后,front=rear= -1 。解决顺序队列“假溢出”的方法是采用 循环队列 。循环队列的队首指针为front,队尾指针为rear,则队空的条件为 front = rear 。链队列LQ为空时,LQ-front-next= NULL 。设长度为n的链队列用单循环链表表示,若只设头指针,则入队
22、操作的时间复杂度为 O(n)。设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复杂度为 0(1) 。在一个链队列中,若队首指针与队尾指针的值相同,则表示该队列为 空 。设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,则队满标志为: front=(rear+1)%MAXLEN 。在一个链队列中,若队首指针为front,队尾指针为rear,则判断该队列只有一个结点的条件为: front=rear & front !NULL 。( 或 front=rear & front NULL )向一个循环队列中插入元素时,首
23、先要判断 队尾指针 ,然后再向指针所指的位置写入新的数据。读队首元素的操作 不改变(或不影响) 队列元素的个数。 (18)设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有 front=11,rear=19,则循环队列中还有 8 个元素。 (L= (Nrearfront)% N=(401911)% 40=8)(19)队列Q,经过下列运算:InitQueue(Q)(初始化队列);InQueue(Q,a); InQueue(Q,b);OutQueue(Q,x); ReadFront(Q,x);QEmpty(Q);后的值是 0 。(20)队列Q经过InitQueue(Q)(
24、初始化队列);InQueue(Q,a);InQueue(Q,b); ReadFront(Q,x)后,x的值是 a 。三选择题(1)队列是限定在( D )进行操作的线性表。 A中间 B队首 C队尾 D端点(2)队列中的元素个数是( B )。 A不变的 B可变的 C任意的 D0(3)同一队列内各元素的类型( A )。 A必须一致 B不能一致 C可以不一致 D不限制(4)队列是一个( C )线性表结构。 A不加限制的 B推广了的 C加了限制的 D非(5)当利用大小为n的数组顺序存储一个队列时,该队列的最后一个元素的下标为( B )。 An-2 Bn-1 Cn Dn+1(6)一个循环队列一旦说明,其占用空间的大小( A )。 A已固定 B可以变动 C不能固定 D动态变化(7)循环队列占用的空间( A )。 A必须连续 B不必连续 C不能连续 D可以不连续(8)存放循环队列元素的数组data有10个元素,则data数组的下标范围是( B )。 A0.10 B0.9 C1.9 D1.10(9)若进队的序列为:A,B,C,D,则出队的序列是( C )。 AB,C,D,A BA,C,B,D CA,B,C,D DC,B,D,A(10)四个元素按:A,B,C,D顺序连续进队Q,则队尾元素是( D )。 A A
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1