数据结构复习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题。(每小题2分,共40分)
(1) 计算机识别.存储和加工处理的对象被统称为____A____。
A.数据
B.数据元素
C.数据结构
D.数据类型
(2) 数据结构通常是研究数据的____ A _____及它们之间的联系。
A.存储和逻辑结构
B.存储和抽象
C.理想和抽象
D.理想与逻辑
(3) 不是数据的逻辑结构是____ A ______。
A.散列结构
B.线性结构
C.树结构
D.图结构
(4) 数据结构被形式地定义为
A.算法
B.数据元素
C.数据操作
D.逻辑结构
(5) 组成数据的基本单位是____ A ______。
A.数据项
B.数据类型
C.数据元素
D.数据变量
(6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A 是____ A ______。
A.线性结构
B.树型结构
C.图型结构
D.集合
(7) 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。
A.存储结构
B.逻辑结构
C.顺序存储结构
D.链式存储结构
(8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。
A.内部结构与外部结构
B.静态结构与动态结构
C.线性结构与非线性结构
D.紧凑结构与非紧凑结构
(9) 对一个算法的评价,不包括如下____ B _____方面的内容。
A.健壮性和可读性
B.并行性
C.正确性
D.时空复杂度
(10) 算法分析的两个方面是__ A ____。
A.空间复杂性和时间复杂性
B.正确性和简明性
C.可读性和文档性
D.数据复杂性和程序复杂性
(11) 线性表是具有n个___ C _____的有限序列(n≠0)。
A.表元素
B.字符
C.数据元素
D.数据项
(12) 线性表的存储结构是一种____ B ____的存储结构。
A.随机存取
B.顺序存取
C.索引存取存取
(13) 在一个长度为n 的顺序表中,向第i个元素(1≤ i≤ n+1)之前插入一个新元素时,需要向后移动____B ____个元素。
+1
(14) 链表是一种采用____ B ____存储结构存储的线性表;
A.顺序
B.链式
C.星式
D.网状
(15) 下面关于线性表的叙述错误的是___ D _____。
A.线性表采用顺序存储必须占用一片连续的存储空间
B.线性表采用链式存储不必占用一片连续的存储空间
C.线性表采用链式存储便于插入和删除操作的实现
D.线性表采用顺序存储便于插入和删除操作的实现
(16) 设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B之间插入结点X的操作序列为__ B ______。
A. s->next=p->next;p->next=-s;
B. q->next=s; s->next=p;
C. p->next=s->next;s->next=p;
D. p->next=s;s->next=q;
(17) 设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为___ A _____。
A. p->next=p->next->next
B. p=p->next
C. p=p->next->next
D. p->next=p
(18) 下列说法哪个正确?____ D ______
A. 堆栈是在两端操作、先进后出的线性表
B. 堆栈是在一端操作、先进先出的线性表
C. 队列是在一端操作、先进先出的线性表
D. 队列是在两端操作、先进先出的线性表
(19) 栈和队列的共同点是_____ C _______。
A. 都是先进后出
B. 都是先进先出
C. 只允许在端点处插入和删除元素
D. 没有共同点
(20) 栈与一般线性表的区别主要在_____D______。
A、元素个数
B、元素类型
C、逻辑结构
D、插入、删除元素的位置
(21) 链栈与顺序栈相比,比较明显的优点是_____D_____。
A、插入操作更加方便
B、删除操作更加方便
C、不会出现下溢的情况
D、不会出现上溢的情况
(22) 以下数据结构中哪一个是非线性结构___ D ______。
A.队列
B.栈
C.线性表
D.二叉树
(23) 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为_____
C ______。
A. i
B. B. n=i
C. n-i+1
D.不确定
(24) 当利用大小为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行____ B ______语句修改top指针。
A. top++
B. top--
C. top=0
D. top
(25) 4个元素进S栈的顺序是A,B,C,D,经运算POP(S)后,栈顶元素是___ C _______。
A. A
B. B
C. C
D. D
(26) 一个栈的输入序列是a,b,c,d,e,则栈的不可能的输出序列是____ C _____。
A. edcba
B. decba
C. dceab
D. abcde
(27) 设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是____ C ______。
A. n-i
B. n-1-i
C. n+1-i
D.不能确定
(28) 字符A、B、C、D依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成___ B ___个不同的字符串?
A. 15
B. 14
C. 16
D. 21
(29) 设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为____ D _______。
A. top=top+1;
B. top=top-1;
C. top->next=top;
D. top=top->next;
(30) 设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是____ C _____。
A. 6
B. 4
C. 3
D. 2
(31) 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为____ B _____。
A. 1和5
B. 2和4
C. 4和2
D. 5和1
(32) 设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为____ C _____。
A. R-F
B. F-R
C. (R-F+M)%M
D. (F-R+M)%M
(33) 设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为____ C _____。
A. front->next=s;front=s;
B. s->next=rear;rear=s;
C. rear->next=s;rear=s;
D. s->next=front;front=s;
(34) 如下陈述中正确的是___ A ______。
A. 串是一种特殊的线性表
B. 串的长度必须大于零
C. 串中元素只能是字母
D. 空串就是空白串
(35) 下列关于串的叙述中,正确的是___ D ______。
A. 串长度是指串中不同字符的个数
B. 串是n个字母的有限序列
C. 如果两个串含有相同的字符,则它们相等
D. 只有当两个串的长度相等,并且各个对应位置的字符都相符时才相等
(36) 字符串的长度是指___ C ______。