数据结构第一章第二章Word格式.docx
- 文档编号:22647819
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:65
- 大小:88KB
数据结构第一章第二章Word格式.docx
《数据结构第一章第二章Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构第一章第二章Word格式.docx(65页珍藏版)》请在冰豆网上搜索。
if(a[j]>
a[j+1])
A[j]与A[j+1]对换;
其中n为正整数,则最后一行的语句的时间复杂度在最坏情况下是()
A.O(n)B.O(nlogn)C.O(n3)D.O(n2)
13.连续存储设计时,存储单元的地址()。
A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续
14.以下数据结构中,()是非线性数据结构
A.树B.字符串C.队D.栈
15.下列数据中,()是非线性数据结构。
A.栈B.队列C.完全二叉树D.堆
16.数据在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为()。
A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构
17.非线性结构的数据元素之间存在()。
A.一对一关系B.一对多关系C.多对多关系D.B或C
18.除了考虑存储数据结构本身所占用的空间外,实现算法所用的辅助空间的多少称
为算法的()。
A.时间效率B.空间效率C.硬件效率D.软件效率
19.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
20.设语句s=s+i的时间是单位时间,则语句:
s=0;
for(i=1;
i++)
s=s+i;
的时间复杂度为:
()。
A.O
(1)B.O(n)C.O(n2)D.O(n3)
二、判断题
1.数据元素是数据的最小单位。
()
2.记录是数据处理的最小单位。
()
3.数据的逻辑结构是指数据的各数据项之间的逻辑关系;
()
4.算法的优劣与算法描述语言无关,但与所用计算机有关。
5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
6.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
7.程序一定是算法。
8.数据的物理结构是指数据在计算机内的实际存储形式。
9.数据结构的抽象操作的定义与具体实现有关。
10.在顺序存储结构中,有时也存储数据结构中元素之间的关系。
11.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
12.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。
13.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构.()
14.数据元素是数据的最小单位。
15.程序和算法原则上没有区别,在讨论数据结构时可以通用。
16.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
17.数据的存储结构是数据的逻辑结构的存储映像。
三、填空
1.数据的物理结构包括的表示和的表示。
2.对于给定的n个元素,可以构造出的逻辑结构有
(1),
(2),(3),__(4)_四种。
3.数据的逻辑结构是指。
4.一个数据结构在计算机中称为存储结构。
5.抽象数据类型的定义仅取决于它的一组__
(1)_,而与_
(2)_无关,即不论其内部结构如何变化,只要它的_(3)_不变,都不影响其外部使用。
6.数据结构中评价算法的两个重要指标是和
7.数据结构是研讨数据的_
(1)_和_
(2)_,以及它们之间的相互关系,并对与这种结构定义相应的_(3)_,设计出相应的(4)_。
8.一个算法具有5个特性:
(1)、
(2)、(3),有零个或多个输入、有一个或多个输出。
9.在下面的程序段中,对x的赋值语句的频度为______(表示为n的函数)
for(i=1;
for(k=1;
k<
=j;
k++)
x=x+delta;
10.下面程序段中带下划线的语句的执行次数的数量级是:
i=1;
while(i<
n)i=i*2;
11.下面程序段中带下划线的语句的执行次数的数量级是()。
i=1;
while(i<
n){for(j=1;
j++)x=x+1;
i=i*2;
}
12.下面程序段中带有下划线的语句的执行次数的数量级是()
i=n*nwhile(i!
=1)i=i/2;
13.计算机执行下面的语句时,语句s的执行次数为_______。
n-1;
for(j=n;
j>
j--)
s;
14.下面程序段的时间复杂度为________。
(n>
1)
sum=1;
for(i=0;
sum<
n;
i++)sum+=1;
15.设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。
例f(5,3)=5,有5种表示方式:
3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整
intf(m,n)
intm,n;
{if(m==1)
return
(1);
if(n==1){
return
(2);
if(m<
n)
{returnf(m,m);
if(m==n)
{return1+(3);
returnf(m.n-1)+f(m-n,(4));
②执行程序,f(6,4)=。
16.在有n个选手参加的单循环赛中,总共将进行______场比赛。
17.数据逻辑结构包括:
、、、四种类型,树形结构和图形结构合称为:
。
18.数据的存储结构形式包括:
、、、。
19.线性结构中的元素之间存在的关系,树形结构中的元素之间存在的关系,图形结构的元素之间存在的关系。
20.在树形结构中,根结点前趋结点,其余每个结点有且仅有个前趋结点;
叶子结点后继结点,其余每个结点都可以有后继结点。
21.在图形结构中,每个结点的前趋结点可以有,后继结点可以有。
22.算法的五个重要特性是:
、、、、。
四、应用题
1.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,写出这些结构?
(2分)
2.有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2n),A2的时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。
【(10分)】
3.设计一数据结构,用来表示某一银行储户的基本信息:
账号、姓名、开户年月日、储蓄类型、存入累加数、利息、帐面总数。
【(5分)】
4.调用下列C函数f(n)回答下列问题:
假定n=5,试指出执行f(5)时的输出结果。
intf(intn)
{inti,j,k,sum=0;
for(i=l;
i<
n+1;
{for(j=n;
i-1;
j--)
j+1;
k++)
sum++;
printf("
sum=%d\n"
sum);
return(sum);
}
5.设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度。
m=0;
for(j=2*I;
m=m+1;
6.有下列运行时间函数:
(1)T1(n)=1000;
(2)T2(n)=n2+1000n;
(3)T3(n)=3n3+100n2+n+1;
分别写出相应的大O表示的运算时间。
(12分)
7.试给出下面两个算法的运算时间(用大O表示)。
(1)fori←1tondo
x←x+1
(2)fori←1tondo
forj←1tondo
x←x+1
(6分)
8.将下列函数,按它们在n→∝时的无穷大阶数,从小到大排序。
n,n-n3+7n5,nlogn,2n/2,n3,logn,n1/2+logn,(3/2)n,
n!
n2+logn
9.试分析下列程序段的时间复杂度
(1)for(i=0;
for(j=0;
j<
m;
j++)
A[i][j]
(2)i=s=0;
while(s<
n)
{
i++
s+=1;
}
(3)s=0;
s+=B[i][j];
sum=s;
(4)prime(intn)
{inti=2;
while((n%i)!
=0&
&
i*1.0<
sqrt(n))i++;
if(i*1.0>
sqrt(n))
%d"
是一素数\n"
n);
else
不是一素数\n"
第1章
绪论答案
一、选择题
1.B
2.C
3.1C
3.2B
4.B
5.D
6.C
7.C
8.D
9.D
10.C
11.C
12.D
13.A
14.A
15.C
16.
C
17.D
18.B
19A
20.B
1.×
2.×
3.×
4.×
5.√
6.×
7.×
8.√
9.×
10.×
11.×
12.√
13.×
14.×
15.×
√
17.√
三.填空题
1.数据元素数据元素间关系2.集合线性结构树形结构图状结构或网状结构。
3.数据的组织形式,即数据元素之间逻辑关系的总体。
4.表示(又称映像)。
5.
(1)逻辑特性
(2)在计算机内部如何表示和实现(3)数学特性。
6.算法的时间复杂度和空间复杂度。
7.
(1)逻辑结构
(2)物理结构(3)操作(运算)(4)算法。
8.
(1)有穷性
(2)确定性(3)可行性。
9.1+(1+2)+(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6O(n3)
10.log2n11.nlog2n12.log2n213.(n+3)(n-2)/214.O(n)
15.①
(1)1
(2)1(3)f(m,n-1)(4)n②916.n(n-1)/2
17.集合线性结构树形结构图形结构非线性结构
18.顺序存储链式存储索引存储散列存储
19.一对一一对多多对多
20.没有一没有多个
21.任意多个任意多个
22.有穷性确定性可行性输入输出
四.应用题
1.将学号、姓名、平均成绩看成一个记录(元素,含三个数据项),将100个这样的记录存于数组中。
因一般无增删操作,故宜采用顺序存储。
typedefstruct
{intnum;
//学号
charname[8];
//姓名
floatscore;
/平均成绩
}node;
nodestudent[100];
2.对算法A1和A2的时间复杂度T1和T2取对数,得nlog2和2logn。
显然,算法A2好于A1。
3.structnode
{intyear,month,day;
};
typedefstruct
//帐号
structnodedate;
//开户年月日
inttag;
//储蓄类型,如:
0-零存,1-一年定期……
floatput;
//存入累加数;
floatinterest;
//利息
floattotal;
//帐面总数
}count;
4.第一层FOR循环判断n+1次,往下执行n次,第二层FOR执行次数为(n+(n-1)+(n-2)+…+1),第三层循环体受第一层循环和第二层循环的控制,其执行次数如下表:
i=123…n
j=nnnn…n
j=n-1n-1n-1n-1…
…………
j=333
j=222
j=11
执行次数为(1+2+…+n)+(2+3+…+n)+…+n=n*n(n+1)/2-n(n2-1)/6。
在n=5时,f(5)=55,执行过程中,输出结果为:
sum=15,sum=29,sum=41,sum=50,sum=55(每个sum=占一行,为节省篇幅,这里省去换行)。
5.O(n2),m的值等于赋值语句m=m+1的运行次数,其计算式为
6.
(1)O
(1)
(2)O(n2)(3)O(n3)7.
(1)O(n)
(2)O(n2)
8.从小到大排列为:
logn,n1/2+logn,n,nlogn,n2+logn,n3,n-n3+7n5,2n/2,(3/2)n,n!
9.试分析下列程序段的时间复杂度
(1)O(n*m)
(2)O(n)(3)O(n2)
(4)O(sqrt(n))
第2章线性表
一选择题
1.下述哪一条是顺序存储结构的优点?
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
2.下面关于线性表的叙述中,错误的是哪一个?
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个()的有限序列(n>
0)。
A.表元素B.字符C.数据元素D.数据项E.信息项
4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表
5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表
6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表
7.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是()(链中结点数大于2,p不是第一个结点)
A.p->
llink->
rlink=p->
.llink;
p->
.llink->
.rlink=p->
.rlink;
free(p);
B.free(p);
llink;
rlink;
C.p->
rlink:
=p->
D.以上A,B,C都不对。
8.静态链表中指针表示的是().
A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址
9.链表不具有的特点是()
A.插入、删除不需要移动元素B.可随机访问任一元素
C.不必事先估计存储空间D.所需空间与线性长度成正比
10.在线性表中()只有一个直接前趋和一个直接后继。
A.首元素B.中间元素C.尾元素D.所有元素
11.在双向链表存储结构中,删除p所指的结点时须修改指针()。
A.(p->
llink)->
rlink=p-.rlink(p->
rlink)->
llink=p->
B.p->
llink:
=(p->
llink(p->
rlink=p;
C.(p->
llink=pp->
rlink=(p->
rlink
D.p->
llinkp->
llink=(p->
12.
(1)静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第i个元素的时间与i无关。
(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是()
A.
(1),
(2)B.
(1)C.
(1),
(2),(3)D.
(2)
13.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<
=i<
=n+1)。
A.O(0)B.O
(1)C.O(n)D.O(n2)
14.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A.O(n)O(n)B.O(n)O
(1)C.O
(1)O(n)D.O
(1)O
(1)
15.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()
A.O(i)B.O
(1)C.O(n)D.O(i-1)
16.非空的循环单链表head的尾结点p-〉满足()。
A.p-〉link==headB.p-〉link==NULLC.p==NULLD.p==head
17.循环链表H的尾结点P的特点是()。
A.P-〉NEXT==HB.P-〉NEXT==H-〉NEXTC.P==HD.P==H-〉NEXT
18.在一个以h为头的单循环链中,p指针指向链尾的条件是()
A.p-〉next==hB.p-〉next==NULLC.p-〉next-〉next==hD.p-〉data==-1
19.完成在双循环链表结点p之后插入s的操作是();
A.p->
next=s;
s->
priou=p;
next->
priou=s;
next=p->
.next;
priou=s;
next=s;
next;
C.s->
D.s->
.next=s;
20.在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是()。
注:
双向链表的结点结构为(llink,data,rlink)。
供选择的答案:
llink=q;
q->
rlink=p;
rlink=q;
rlink=q;
rlink=p;
llink;
C.q->
rlink=q;
llink=q;
D.q->
q->
p->
21.两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素前趋的条件是()。
A.P->
next==Q->
nextB.P->
next==QC.Q->
next==PD.P==Q
22.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()
A.p->
q->
p->
llink->
llink=p->
B.q->
llink=q->
C.q->
D.p->
23.在双向链表指针p的结点前插入一个指针q的结点操作是()。
Llink=q;
q->
Rlink=p;
p->
Llink->
Rlink=q;
Llink=q;
B.p->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第一章 第二