数据结构基础知识题库.docx
《数据结构基础知识题库.docx》由会员分享,可在线阅读,更多相关《数据结构基础知识题库.docx(30页珍藏版)》请在冰豆网上搜索。
![数据结构基础知识题库.docx](https://file1.bdocx.com/fileroot1/2022-11/30/5c335028-9c29-438f-a8bc-3a9920eaa42f/5c335028-9c29-438f-a8bc-3a9920eaa42f1.gif)
数据结构基础知识题库
数据结构基础知识题库
1.()是性质相同的数据元素的集合,是数据的子集。
[单选题]
A.数据元素
B.数据对象(正确答案)
C.数据结构
D.数据项
2.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。
[单选题]
A.物理结构(正确答案)
B.逻辑结构
C.算法的具体实现
D.给相关变量分配存储单元
3.从n个数中选取最大元素()。
[单选题]
A.基本操作是数据元素间的交换
B.算法的时间复杂度是O(n2)
C.算法的时间复杂度是O(n)(正确答案)
D.需要进行(n+1)次数据元素间的比较
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.有0个或多个输出(正确答案)
14.某算法的时间复杂度为O(n),表明该算法的()[单选题]
A.问题规模为n
B.执行时间等于n
C.执行的时间与n成正比(正确答案)
D.问题规模与n成正比
15.以下算法的时间复杂度为()。
voidfun(intn){intj=0;for(i=1;i<=n;i++)j=j+i;}[单选题]
A.O(n)(正确答案)
B.O(n2)
C.O(nlog2n)
D.O(log2n)
16.以下算法的时间复杂度为()。
voidfun(intn){intsum=0;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)sum+=j*i;}[单选题]
A.O(n)
B.O(n2)(正确答案)
C.O(nlog2n)
D.O(log2n)
17.线性表是有n个()的有限序列。
[单选题]
A.数据表
B.字符
C.数据元素(正确答案)
D.数据项
18.线性表是一个()。
[单选题]
A.有限序列,可以为空(正确答案)
B.有限序列,不可以为空
C.无限序列,可以为空
D.无限序列,不可以为空
19.以下()是一个线性表。
[单选题]
A.由n个实数组成的集合
B.由100个字符组成的序列(正确答案)
C.由所有整数组成的序列
D.所有奇数组成的序列
20.在线性表中,除了开始元素外,每个元素()。
[单选题]
A.只有唯一的前驱元素(正确答案)
B.只有唯一的后即元素字符
C.有多个前驱元素
D.有多个后继元素
21.顺序表的最大有优点是()。
[单选题]
A.存储密度大(正确答案)
B.插入运算方便
C.删除运算方便
D.可以方便地用于各种逻辑的存储表示
22.对于顺序表,访问编号为i的元素的时间复杂度为()。
[单选题]
A.O(n)
B.O
(1)(正确答案)
C.O(nlog2n)
D.O(log2n)
23.对于顺序表,在编号为i处插入一个新元素的间复杂度为()。
[单选题]
A.O(n)(正确答案)
B.O
(1)
C.O(nlog2n)
D.O(log2n)
24.采用顺序查找法对长度为n的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行()次元素间的比较。
[单选题]
A.n+2
B.n(正确答案)
C.n-1
D.n/2
25.带头结点的单向链表的头指针为head,该链表为空的判定条件是()的值为真。
[单选题]
A.head==NULL
B.head.getNext()==head
C.head.getNext()==NULL(正确答案)
D.head==head.getNext()
26.非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。
[单选题]
A.p.getNext()==NULL
B.p==NULL
C.p.getNext()==head(正确答案)
D.p==head
27.链表所具备的特点是()。
[单选题]
A.可以随机访问任一结点
B.占用连续的存储空间
C.可以通过下标对链表进行直接访问
D.插入删除元素的操作不需要移动元素结点(正确答案)
28.设链表中的结点是Node类型的类,且有Nodep;为了申请一个新结点,并由p指向该结点,可用以下Java语句()。
[单选题]
A.p=newNode();(正确答案)
B.p=newNode(*);
C.p=(NODE)malloc(sizeof(p));
D.p=(NODE*)malloc(sizeof(p));
29.设顺序存储的线性表长度为n,对于插入操作,设插入位置是等概率的,则插入一个元素平均移动元素的次数为()。
[单选题]
A.n/2(正确答案)
B.n
C.n-1
D.n-i+1
30.设顺序存储的线性表长度为n,对于删除操作,设删除位置是等概率的,则删除一个元素平均移动元素的次数为()。
[单选题]
A.(n-1)/2(正确答案)
B.n
C.2n
D.n-i
31.设顺序存储的线性表长度为n,要删除第i(0<=i<=n-1)个元素,按课本的算法,当i=()时,移动元素的次数为3。
[单选题]
A.3
B.n/2
C.n-4(正确答案)
D.4
32.设顺序存储的线性长度为n,要在第i(0<=i<=n)个元素之前插入一个新元素,按课本的算法当i=()时,移动元素次数为2。
[单选题]
A.n/2
B.n
C.1
D.n-2(正确答案)
33.设有一个长度为n的顺序表,要删除第i(0<=i<=n-1)个元素,按照课本算法,需移动元素的个数为()。
[单选题]
A.n-i+1
B.n-i
C.n-i-1(正确答案)
D.i
34.下述各线性结构中可以随机访问的是()。
[单选题]
A.单向链表
B.双向链表
C.单向循环链表
D.顺序表(正确答案)
35.线性表采用链式存储时,其地址()。
[单选题]
A.一定是不连续的
B.必须是连续的
C.可以连续也可以不连续(正确答案)
D.部分地址必须是连续的
36.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。
[单选题]
A.p=q.getNext();
B.p.setNext(q);
C.p.setNext(q.getNext());(正确答案)
D.q.setNext(NULL);
37.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
[单选题]
A.p.setNext(s);s.setNext(p.getNext());
B.p,setNext(s.getNext());
C.p=s.getNext();
D.s.setNext(p.getNext());p.setNext(s);(正确答案)
38.按照教材算法,在一个长度为n的顺序表中为了删除第5个元素,从前到后依次移动了15个元素。
则原顺序表的长度为()。
[单选题]
A.21
B.20(正确答案)
C.19
D.25
39.针对线性表,在存储后如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。
[单选题]
A.单链表
B.双链表
C.顺序表(正确答案)
D.单循环链表
40.假设在顺序表中,每一个数据元素所占的存储单元的数目为4,且第一个数据元素的存储地址为100,则位序号是7的数据元素的存储地址是:
()。
[单选题]
A.106
B.107
C.124
D.128(正确答案)
41.队列的插入操作在()进行。
[单选题]
A.队头
B.队尾(正确答案)
C.队头或队尾
D.在任意指定位置
42.队列的删除操作在()进行。
[单选题]
A.队头(正确答案)
B.队尾
C.队头或队尾
D.在任意指定位置
43.栈的插入操作在()进行。
[单选题]
A.栈顶(正确答案)
B.栈底
C.栈顶或栈底
D.在任意指定位置
44.一个队列的入队序列是2,4,6,8,则队列的输出序列是()。
[单选题]
A.8,6,4,2
B.2,4,6,8(正确答案)
C.4,2,8,6
D.6,4,2,8
45.一个队列的入队序列是5,6,7,8,则队列的输出序列是()。
[单选题]
A.5678(正确答案)
B.8765
C.7865
D.可能有多种情况
46.一个栈的进栈序列是1,2,3,4,则不可能的出栈序列是()(进出栈操作可以交替进行)。
[单选题]
A.3,2,4,1
B.1,4,2,3(正确答案)
C.4,3,2,1
D.3,2,1,4
47.一个栈的进栈序列是5,6,7,8,则栈的不可能的出栈序列是()(进出栈操作可以交替进行)[单选题]
A.5,8,6,7(正确答案)
B.7,6,8,5
C.8,7,6,5
C.7,6,8,5
48.一个栈的进栈序列是a,b,c,d,e,则栈的不可能输出序列是()(进栈出栈可以交替进行)。
[单选题]
A.dceab(正确答案)
B.edcba
C.decba
D.abcde
49.以下说法不正确的是()。
[单选题]
A.顺序栈中,栈满时再进行进栈操作称为“上溢”
B.顺序栈中,栈空时再作出栈栈操作称为“下溢”
C.顺序队列中,当尾指针已经超越队列存储空间的上界,则一定是队列已满(正确答案)
D.顺序队列中,队列的头指针和尾指针均超越队列存储空间的上界,则队列已空
50.以下说法不正确的是()。
[单选题]
A.栈的特点是后进先出
B.队列的特点是先进先出
C.栈的删除操作在栈底进行,插入操作在栈顶进行(正确答案)
D.队列的插入操作在队尾进行,删除操作在队头进行
51.以下说法正确的是()。
[单选题]
A.栈的特点是先进先出,队列的特点是先进后出
B.栈和队列的特点都是先进后出
C.栈的特点是先进后出,队列的特点是先进先出D.栈和队列的特点都是先进先出(正确答案)
52.以下说法正确的是()。
[单选题]
A.栈的特点是先进先出,队列的特点是先进后出
B.栈和队列的特点都是先进后出
C.栈的特点是先进后出,队列的特点是先进先出D.栈和队列的特点都是先进先出(正确答案)
53.元素2,4,6,8按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。
[单选题]
A.8,6,4,2
B.2,4,6,8
C.4,2,8,6
D.8,6,2,4(正确答案)
54.元素2,4,6按顺序依次进栈,则该栈的不可能的输出序列是()。
[单选题]
A.642
B.624(正确答案)
C.426
D.264
55.栈的插入删除操作在()进行。
[单选题]
A.栈底
B.任意位置
C.指定位置
D.栈顶(正确答案)
56.栈和队列的相同点是()。
[单选题]
A.都是后进先出
B.都是后进后出
C.逻辑结构与线性表不同
D.逻辑结构与线性表相同,都是操作规则受到限制的线性表(正确答案)
57.从一个栈顶指针为top的链栈中插入一个由P指向的新结点时,则执行的操作是()。
[单选题]
A.p.setNext(top);top=p;(正确答案)
B.top=p;p.setNext(top);
C.top.setNext(p);top=p;
D.top.setNext(p);p=top;
58.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为()。
[单选题]
A.x=top.getData();top=top.getNext();(正确答案)
B.top=top.getNext();x=top.getData();
C.x=top.getNext();top=top.getData();
D.top.setNext(top);x=top.getData();
59.设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针,要执行出队操作,用x保存出队元素的值,p为指向结点类型的指针,可执行如下操作:
p=front.next;x=p.data;然后执行()。
[单选题]
A.front=p.next;
B.Front.next=p.next;(正确答案)
C.front=p;
D.Front.next=p;
60.设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针。
设p指向要入队的新结点(该结点已被赋值),则入队操作为()。
[单选题]
A.Rear.next=p;rear=p;(正确答案)
B.Rear.next=p;p=rear;
C.p=rear.next;rear=p;
D.rear=p;rear.next=p;A
61.在一个链队列中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为()。
[单选题]
A.f.setNext(s);f=s;
B.r.setNext(s);r=s;(正确答案)
C.s.setNext(r);r=s;
D.s.setNext(f);f=s;
62.在一个链队列中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。
[单选题]
A.r=f.getNext();
B.r=r.getNext();
C.f=r.getNext();
D.f=f.getNext();(正确答案)
63.在一个循环队列中,队列的空间大小为length,设对头指针为front,队尾指针为rear,按照教材采用减少一个存储元素的方法,以下那个能判断队列已满。
()[单选题]
A.(rear+1)%length==front;(正确答案)
B.rear==front;
C.rear%length==front;
D.(rear-1)%length==front;
64.若一个栈用数组data[1..n]存储,初始栈顶指针top为n,则如元素x进栈的正确操作是:
()[单选题]
A.top++;data[top]=x;
B.data[top]=x;top++;
C.top--;data[top]=x;
D.data[top]=x;top--;(正确答案)
65.为解决计算机主机与打印机之间速度不匹配问题,通常设计打印机数据缓冲区,主机将输出的数据依次写入缓冲区,而打印机依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是:
()[单选题]
A.栈
B.队列(正确答案)
C.树
D.图
66.串方法concat(str)的功能是进行串()。
[单选题]
A.比较
B.复制
C.赋值
D.连接(正确答案)
67.串函数s=“Hello”;s.indexOf(“e”,0)的值为()。
[单选题]
A.1(正确答案)
B.0
C.“He”
D.“e”
68.空串的长度为()。
[单选题]
A.0(正确答案)
B.1
C.2
D.3
69.以下陈述中正确的是()。
[单选题]
A.串是一种特殊的线性表(正确答案)
B.串的长度必须大于零
C.串中元素只能是字母
D.空串就是空白串
70.设有两个串p和q,其中q是p的子串,q在p中首次出现的位置的算法称为()。
[单选题]
A.求子串
B.连接
C.匹配(正确答案)
D.求串长
71.串是()。
[单选题]
A.不少于一个字母的序列
B.任意个字母的序列
C.不少于一个字符的序列
D.有限个字符的序列(正确答案)
72.串的长度是指()。
[单选题]
A.串中所含不同字母的个数
B.串中所含字符的个数(正确答案)
C.串中所含不同字符的个数
D.串中所含非空格字符的个数
73.若串S=“English”,其子串的个数是()。
[单选题]
A.9
B.16
C.36
D.29(正确答案)
74.下面关于串的叙述中,不正确的是()。
[单选题]
A.串是字符的有限序列
B.空串是由空格构成的串(正确答案)
C.模式匹配是串的一种重要运算
D.串即可以采用顺序存储,也可以采用链式存储
75.串与普通的线性表相比较,它的特殊性体现在()。
[单选题]
A.顺序的存储结构
B.链接的存储结构
C.数据元素是一个字符(正确答案)
D.数据元素可以任意
76.空串与空格串()。
[单选题]
A.相同
B.不相同(正确答案)
C.可能相同
D.无法确定
77.两个字符串相等的条件是()。
[单选题]
A.两串的长度相等
B.两串包含的字符相同
C.两串的长度相等,并且两串包含的字符相同
D.两串的长度相等,并且对应位置上的字符相同(正确答案)
78.在实际应用中,要输入多个字符串,且长度无法预定。
则应该采用()存储比较合适。
[单选题]
A.链式(正确答案)
B.顺序
C.堆结构
D.无法确定
79.设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主存储到一维数组B中(数组下标从0开始),则矩阵中元素A[8][5]在一维数组B中的下标是()。
[单选题]
A.33
B.32
C.85
D.41(正确答案)
80.设有一个10阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。
(矩阵A的第一个元素为A[0][0],数组b的下标从0开始),则矩阵元素A[5][3]对应一维数组b的数组元素是()。
[单选题]
A.b[18](正确答案)
B.b[8]
C.b[13]
D.b[10]
81.设有一个12阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中(矩阵A的第一个元素为A[0][0],数组b的下标从0开始),则矩阵A中第4行的元素在数组b中的下标i一定有()。
[单选题]
A.7≤i≤10
B.11≤i≤15
C.10≤i≤14(正确答案)
D.6≤i≤9
82.设有一个15阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从0开始),则矩阵中元素a7,6在一维数组B中的下标是()。
[单选题]
A.42(正确答案)
B.13
C.27
D.34
83.设有一个15阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。
(矩阵A的第一个元素为a1,1,数组b的下标从1开始),则数组元素b[13]对应A的矩阵元素是()。
[单选题]
A.a5,3(正确答案)
B.a6,4
C.a7,2
D.a6,8
84.设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(矩阵A的第一个元素为a1,1,数组下标从1开始),则矩阵中元素a9,2在一维数组B中的下标是()。
[单选题]
A.41
B.32
C.18
D.38(正确答案)
85.设有一个20阶的对称矩阵A,采用压缩存储方式,将其下三角部分以行序为主序存储到一维数组中(矩阵A的第一个元素为a11,数组b的下标从1开始),则矩阵元素a8,5在一维数组b中的下标是()。
[单选题]
A.30
B.28
C.40
D.33(正确答案)
86.在Java语言中,利用数组a存放字符串“Hello”,以下语句中正确的是()。
[单选题]
A.Chara[10]=“Hello”;
B.Chara[10];a=“Hello”;
C.Chara[10]=‘Hello’;
D.Chara[]={‘H’,’e’,’l’,’l’,’o’};(正确答案)
87.对二叉排序树进行()遍历,遍历所得到的序列是有序序列。
[单选题]
A.按层次
B.前序
C.中序(正确答案)
D.后序
88.深度为5的完全二叉树第5层上有4个结点,该树一共有()个结点。
[单选题]
A.28
B.30
C.31
D.19(正确答案)
89.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。
[单选题]
A.3
B.8
C.5(正确答案)
D.6
90.一棵哈夫曼树共有n个非叶结点,则该树一共有()个结点。
[单选题]
A.2*n-1
B.2*n+1(正确答案)
C.2*n
D.2*(n-1)
91.一棵哈夫曼树共有n个非叶结点,则该树有()个叶结点。
[单选题]
A.n
B.n+1(正确答案)
C.n-1
D.2n
92.一棵哈夫曼树共有n个叶结点,则该树有()个非叶结点。
[单选题]
A.n-1(正确答案)
B.n
C.n+1
D.2n
93.一棵哈夫曼树有n个叶子结点(终端结点),该树总共有()个结点。
[单选题]
A.2n-2
B.2n-1(正确答案)
C.2n
D.2n+2
94.一棵哈夫曼树总共有23个结点,该树共有()个叶结点(终端结点)。
[单选题]
A.10
B.13
C.11
D.12(正确答案)
95.一棵完全二叉树共