数据结构网试题Word文件下载.docx
- 文档编号:19709449
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:57
- 大小:109.21KB
数据结构网试题Word文件下载.docx
《数据结构网试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构网试题Word文件下载.docx(57页珍藏版)》请在冰豆网上搜索。
A、一种数据类型B、相互之间存在一种或多种特定关系的数据元素的集合
C、一组性质相同的数据元素的集合D、数据的存储结构
11、算法分析的目的是()。
A、辨别数据结构的合理性B、评价算法的效率
C、研究算法中输入与输出的关系D、鉴别算法的可读性
12、下面程序段的时间复杂度为()。
for(inti=0;
i<
m;
i++)
for(intj=0;
j<
n;
j++)
a[i][j]=ij;
A、O(m2)B、O(n2)C、O(mn)D、O(m+n)
13、执行下面程序段时,执行S语句的次数为()。
for(inti=1;
=n;
for(intj=1;
=i;
S;
A、n2B、n2/2C、n(n+1)D、n(n+1)/2
14、算法的可读性是指()。
A、算法所含语句数较少
B、算法较简单,计算机容易编译
C、算法较简单,人们很容易看出它的执行结果
D、算法结构清晰,容易被算法设计者及其同行看懂
15、算法分析的主要任务是分析()。
A、算法是否具有较好的可读性B、算法中是否存在语法错误
C、算法的功能是否符合设计要求D、算法的执行时间和问题规模之间的关系
二、填空题:
1、在数据逻辑结构的二元组S=(D,R)表示中,D是(),R是()。
2、没有前驱的结点称为(),没有后继的结点称为()。
3、数据的逻辑结构可以分为()和()两大类。
4、在树形结构中,每个结点最多只有一个()。
5、为了实现随机访问,线性结构应该采用()存储。
6、逻辑上相邻的结点在存储器中也相邻,这是()存储结构的特点。
7、数据的运算是在()上定义的,运算的具体实现与()结构有关。
8、用数量级形式表示的算法执行时间称为算法的()。
9、算法的执行时间是()的函数。
10、在高级语言程序中,表示一组连续的存储单元,通常用()。
11、数据的物理结构包括()的表示和()的表示。
12、对于给定的n个元素,可以构造出的逻辑结构有(),(),(),()四种。
13、一个算法具有5个特性:
()、()、()、有零个或多个输入、有一个或多个输出。
14、一个算法的时间复杂度为(3n2+2nlog2n+4n-7)/(5n),其数量级表示为()。
15、在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着()、()和()的联系。
三、判断题:
1、计算机程序处理的对象可分为数据和非数据两大类。
()
2、构成数据的最小单位是数据项。
3、数据元素和结点是同一个概念。
4、每个结点一般包含若干个字段。
5、同一个结点中的各个字段类型可以不相同。
6、数据是由一些类型相同的数据元素构成的。
7、数据的逻辑结构与各数据元素在计算机中如何存储有关。
8、如果数据元素值的大小改变了,则数据的逻辑结构也随之改变。
9、逻辑结构相同的数据,结点类型也一定相同。
10、逻辑结构相同的数据,可以有多种不同的存储方法。
11、逻辑结构不相同的数据,要采用不同的存储方法来存储。
12、线性结构的特征之一是:
开始结点和终端结点都是唯一的。
13、在线性结构中,每个结点都有一个前驱、一个后继。
14、线性结构可以看成是树形结构的一个简单特例。
15、树型结构可以看成是图状结构的一个简单特例。
16、判断某个算法是否容易阅读是算法分析的任务之一。
17、算法容易阅读是好算法的主要标志之一。
18、算法必须用程序设计语言来书写。
19、为了实现随机访问,线性结构只能用顺序方法存储。
20、问题的规模越大,其算法也就越长。
21、数据元素是数据的最小单位。
22、记录是数据处理的最小单位。
()
23、数据的逻辑结构是指数据的各数据项之间的逻辑关系;
()
24、算法的优劣与算法描述语言无关,但与所用计算机有关。
25、健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
26、算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
27、程序一定是算法。
28、数据的物理结构是指数据在计算机内的实际存储形式。
29、在顺序存储结构中,有时也存储数据结构中元素之间的关系。
30、顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
四、应用题:
1、评价一个好的算法,您是从哪几方面来考虑的?
2、若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,写出这些结构?
3、在编制管理通讯录的程序时,什么样的数据结构合适?
为什么?
4、有下列运行时间函数:
(1)T1(n)=1000;
(2)T2(n)=n2+1000n;
(3)T3(n)=3n3+100n2+n+1;
分别写出相应的大O表示的运算时间。
五、综合题:
1、设计一数据结构,用来表示某一银行储户的基本信息:
账号、姓名、开户年月日、储蓄类型、存入累加数、利息、帐面总数。
2、调用下列C函数f(n)或PASACAL函数f(n),回答下列问题:
(1)试指出f(n)值的大小,并写出f(n)值的推导过程;
(2)假定n=5,试指出f(5)值的大小和执行f(5)时的输出结果。
C函数:
intf(intn)
{inti,j,k,sum=0;
for(i=l;
n+1;
{for(j=n;
j>
i-1;
j--)
for(k=1;
k<
j+1;
k++)
sum++;
printf("
sum=%d\n"
sum);
}
return(sum);
第二章线性表
1、一个顺序表所占存储空间的大小与()无关。
A、顺序表长度B、结点类型C、结点中各字段的类型D、结点存放顺序
2、设内存地址的分配是从小(低地址)到大(高地址)进行的。
若存储某结点需要5个内存单元,则该结点的地址,通常是指5个内存单元中()。
A、第3个单元的地址B、地址值最小的那个单元的地址
C、地址的一个升序序列D、地址的一个降序序列。
3、顺序表的长度与()有关。
A、线性表中有多少个结点B、每个结点有多少个字段
C、每个结点中各字段的类型D、存储顺序表的数组类型
4、与单向链表相比,双向链表的优点之一是()。
A、插入、删除操作更简单B、可以进行随机访问
C、可以省略表头指针或表尾指针D、顺序访问相邻结点更灵活
5、动态链表所占用的内存单元地址一定是()。
A、无序的B、连续的C、不连续的D、部分连续的
6、与动态链表相比,静态链表的缺点之一是()。
A、插入、删除操作有时不方便B、存储空间有时得不到充分利用
C、要求各结点具有相同的类型D、链表中各结点的值只能读取,不能更改
7、如果对线性表的运算只有2种:
删除第一个元素;
在最后一个元素的后面插入新元素,则最好使用()。
A、只有表头指针没有表尾指针的循环单向链表B、只有表尾指针没有表头指针的循环单向链表
C、非循环双向链表D、循环双向链表
8、设H是带表头结点循环单向链表的表头指针。
当这种链表成为空链表时,()。
A、表头结点指针字段的值为空
B、H的值为空
C、表头结点指针字段的值与H的值相等
D、表头结点指针字段的值与H的地址相等
9.设H是带表头结点循环单向链表的表头指针,p是和H同类型的变量。
当p指向链表的最后一个结点时,()。
A、该结点指针字段的值为空
B、p为空
C、p的值与表头结点指针字段的值相等
D、该结点指针字段的值与H的值相等
10.在长度为n的()上,删除第一个元素,其算法的时间复杂度是O(l)。
A、只有表头指针的不带表头结点的循环单向链表
B、只有表尾指针的不带表头结点的循环单向链表
C、只有表尾指针的带表头结点的循环单向链表
D、只有表头指针的带表头结点的循环单向链表
11.在长度为n的()上,删除最后一个元素,其算法的时间复杂度是O(n)。
A、只有表头指针的循环双向链表B、只有表头指针的非循环双向链表
C、只有表尾指针的非循环双向链表D、只有表尾指针的循环双向链表
12、假设某个带头结点的单链表的头指针为head,则判定该表为空表的条件是()。
A、head==NULL;
B、head->
next==NULL;
C、head!
=NULL;
D、head->
next==head;
13、已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A、q->
next=s->
next;
s->
next=p;
B、s->
q->
C、p->
next=q;
D、s->
p->
14、在线性表的下列运算中,不改变数据元素之间结构关系的运算是( )。
A、插入B、删除C、排序D、定位
15、下列有关线性表的叙述中,正确的是()。
A、一个线性表是n个数据元素的有限序列
B、线性表中任何一个元素有且仅有一个直接前驱
C、线性表中任何一个元素有且仅有一个直接后继
D、以上说法都不正确
16、从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动()个元素。
A、n-iB、n-i+1C、n-i-1D、i
17、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
A、HL=p;
p->
next=HL;
B、p->
HL=p;
p=HL;
D、p->
next=HL->
next;
HL->
next=p;
18、下述哪一条是顺序存储结构的优点?
A、存储密度大B、插入运算方便C、删除运算方便D、可方便地用于各种逻辑结构的存储表示
19、关于线性表的叙述中,错误的是哪一个?
A、线性表采用顺序存储,必须占用一片连续的存储单元。
B、线性表采用顺序存储,便于进行插入和删除操作。
C、线性表采用链接存储,不必占用一片连续的存储单元。
D、线性表采用链接存储,便于插入和删除操作。
20.线性表是具有n个()的有限序列(n>
0)。
A、表元素B、字符C、数据元素D、数据项
21.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A、顺序表B、双链表C、带头结点的双循环链表D、单循环链表
22、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A、单链表B、仅有头指针的单循环链表C、双链表D、仅有尾指针的单循环链表
23、设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
A、单链表B、单循环链表C、带尾指针的单循环链表D、带头结点的双循环链表
24、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用()存储方式最节省运算时间。
A、单链表B、双链表C、单循环链表D、带头结点的双循环链表
25、静态链表中指针表示的是()。
A.内存地址B、数组下标C、下一元素地址D、左、右孩子地址
26、链表不具有的特点是()。
A、插入、删除不需要移动元素B、可随机访问任一元素
C、不必事先估计存储空间D、所需空间与线性长度成正比
27、下面的叙述不正确的是()。
A、线性表在链式存储时,查找第i个元素的时间同i的值成正比
B、线性表在链式存储时,查找第i个元素的时间同i的值无关
C、线性表在顺序存储时,查找第i个元素的时间同i的值成反比
D、线性表在顺序存储时,查找第i个元素的时间同i的值无关
28、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<
=i<
=n+1)。
A.O(0)B.O
(1)C.O(n)D.O(n2)
29、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A、O(n)O(n)B、O(n)O
(1)C、O
(1)O(n)D、O
(1)O
(1)
30、在单链表指针为p的结点之后插入指针为s的结点,正确的操作是()。
A、p->
next=s;
next=p->
B、s->
1、顺序表是一种()线性表。
2、往长度为n的顺序表中插入一个元素,最多要移动()个元素。
3、在()情况下,从顺序表中删除一个元素平均要移动近一半的元素。
4、在程序中,实现动态链表要用到()类型的变量。
5、用数组实现的链表,通常称为()链表。
6、若用带表头结点的单向链表来表示长度为n的线性表,则需要为链表分配()个结点的内存空间。
7、在循环单向链表中,可以用()代替表头指针。
8、在长度为n的顺序表上实现定位操作,其算法的时间复杂度是()。
9、在长度为n的单向链表上实现定位操作,其算法的时间复杂度是()。
10、在顺序表()后面插人新元素,不需要移动任何元素。
11、在()循环单向链表上,删除第一个结点,其算法的时间复杂度为O(l)。
12、根据()多少,线性链表可分为单向链表和双向链表两大类。
13、在单向链表中,增加一个表头结点的目的是()。
14、用数组实现单向链表时,通常将数组中那些空单元组织成一个()。
15、往顺序表中插入新元素,除了要判断是否有空单元以外,还要判断()是否正确。
16、在非循环的()链表中,可以用表尾指针代替表头指针。
17、在一个长度为100的顺序表中删除第10个元素时,需移动()个元素。
18、在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为()和()。
19、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用()存储结构。
20、线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是()。
21、设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点,若将结点y插入结点x之后,则需要执行以下语句:
();
()。
22、在一个长度为n的顺序表中第i个元素(1<
=n)之前插入一个元素时,需向后移动()个元素。
23.在单链表中设置头结点的作用是()。
24.对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为(),在给定值为x的结点后插入一个新结点的时间复杂度为()。
25.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成()和();
而又根据指针的连接方式,链表又可分成()和()。
26、在双向循环链表中,向p所指的结点之后插入指针f所指的结点,其操作是()、()、()、()。
27、链接存储的特点是利用()来表示数据元素之间的逻辑关系。
28、顺序存储结构是通过()表示元素之间的关系的;
链式存储结构是通过()表示元素之间的关系的。
29、对于双向链表,在两个结点之间插入一个新结点需修改的指针共()个,单链表为()个。
30、循环单链表的最大优点是:
31、已知指针p指向单链表L中的某结点,则删除其后继结点的语句是:
32、带头结点的双循环链表L中只有一个元素结点的条件是:
33、在单链表L中,指针p所指结点有后继结点的条件是:
34、带头结点的双循环链表L为空表的条件是:
35、在单链表p结点之后插入s结点的操作是:
1、线性结构中的结点按前驱、后继关系可以排成一个线性序列。
2、存储一个线性表所需的内存单元数与线性表的元素类型有关。
3、空线性表的一个特征是线性表中各结点尚未赋值。
4、顺序表是一种有序的线性表。
5、顺序表的长度等于元素个数与每个元素所占内存单元数之乘积。
6、分配给顺序表的内存单元地址必须是连续的。
7、用一维数组表示顺序表时,顺序表的第i个元素必须放在下标为i的数组元素中。
8、若表示顺序表的一维数组各元素尚未赋值,则创建一个空顺序表的操作实际上不需要做任何事情。
9、从长度为n的顺序表中删除一个元素,所需时间都是O(n)。
10、往顺序表中插入一个元素,平均要移动大约一半的元素。
11、在动态单向链表中,每个结点总是占用一片连续的内存空间。
12、分配给单向链表的内存单元地址必须是连续的。
13、与顺序走相比;
在链表上实现顺序访问,其算法的效率比较低。
14、单向链表中的结点只有后继,没有前驱。
15、在任何一种线性链表上都无法进行随机访问。
16、在循环单向链表中;
每个结点都有一个后继。
17、在画单向链表示意图时,表示指针的箭头必须指向结点的第一个字段。
18、凡是空的单向链表都是不含任何结点的。
19、空的单向链表所表示的是长度为零的线性表。
20.允许进行插入、删除操作是动态链表的主要特征。
21、一个结点的指针字段为空,说明该字段中没有存放任何信息。
22、不带表头结点的空的单向链表不占用任何内存空间。
23、在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。
24、如果单向链表带有表头结点,则线性表的插入操作永远不会改变表头指针的值。
25、在循环单向链表中,任何一个结点的指针字段值都不可能为空。
26、双向链表的表头指针要比单向链表的表头指针占用更多的内存空间。
27、在结点个数相同的情况下,双向链表所需的内存空间是单向链表的两倍。
28、双向链表的结点,数值字段、前驱指针字段和后继指针字段的排列顺序可以是任意的。
29、在双向链表中,每个结点一般至少有3个字段。
30、静态链表的表头指针是一个指针类型的变量。
31、链表中的头结点仅起到标识的作用。
32、顺序存储结构的主要缺点是不利于插入或删除操作。
33、线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
34、顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。
35、对任何数据结构链式存储结构一定优于顺序存储结构。
36、顺序存储方式只能用于存储线性结构。
37、集合与线性表的区别在于是否按关键字排序。
38、所谓静态链表就是一直不发生变化的链表。
39、线性表的特点是每个元素都有一个前驱和一个后继。
40、取线性表的第i个元素的时间同i的大小有关.()
41、循环链表不是线性表.()
42、线性表只能用顺序存储结构实现。
43、线性表就是顺序存储的表。
44、为了很方便的插入和删除数据,可以使用双向链表存放数据。
45、顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
1、线性表有两种存储结构:
一是顺序表,二是链表。
试问:
(1)如果有n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。
在此情况下,应选用哪种存储结构?
为什么?
(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?
为什么?
2、说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;
头结点与首元结点的关系。
3、在单链表和双向链表中,能否从当前结点出发访问到任何一个结点?
4、设单链表中某指针p所指结点(即p结点)的数据域为data,链指针域为next,请写出在p结点之前插入s结点的操作
5、设双向循环链表中结点的数据域、前驱和后继指针域分别为data,pre和next,试写出在指针p所指结点之前插入一s结点的C语言描述语句。
1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。
请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
2、已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。
要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。
3、已知不带头结点的线性链表list,链表中结点构造为(data、link),其中data为数据域,link为指针域。
请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。
要求链接过程中不得使用除该链表以外的任何链结点空间。
4、试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。
voiddelete(Linklist&
L)
5、给定(已生成)一个带表头结点的单链表,设head为头指针,结点的结构为(data,next),data为整型元素,next为指针,试写出算法:
按递增次序输出单链表中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 试题