数据结构习题含答案.docx

上传人:b****4 文档编号:1419590 上传时间:2022-10-22 格式:DOCX 页数:43 大小:78.91KB
下载 相关 举报
数据结构习题含答案.docx_第1页
第1页 / 共43页
数据结构习题含答案.docx_第2页
第2页 / 共43页
数据结构习题含答案.docx_第3页
第3页 / 共43页
数据结构习题含答案.docx_第4页
第4页 / 共43页
数据结构习题含答案.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

数据结构习题含答案.docx

《数据结构习题含答案.docx》由会员分享,可在线阅读,更多相关《数据结构习题含答案.docx(43页珍藏版)》请在冰豆网上搜索。

数据结构习题含答案.docx

数据结构习题含答案

第一章绪论

一、填空题

1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。

_________是数据的基本单位;___________是数据的最小单位。

通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。

2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:

DS=(D,R)。

3.已知某数据结构的二元组形式表示为:

A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。

则此数据结构属于_____________结构。

4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。

5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。

6.线性结构的特点是:

第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。

7.树型结构的特点是:

根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。

8.图型结构的特点是:

每个结点可以有_________个前驱结点和后继结点。

9.程序段for(i=1,s=0;s

10.常见的时间复杂度有常数阶O

(1)、对数阶O(log2n)、线性阶O(n)、平方阶O(n2)、线性对数阶O(nlog2n)、立方阶O(n3)、指数阶O(2n)等等,这些数量阶之间的大小关系为__________________________。

二、分析下列用二元组形式表示的数据结构,指出他们分别属于何种类型的数据结构。

1.A=(K,R),其中:

K={a,b,c,d,e,f,g,h},R={r},r={}。

2.B=(K,R),其中:

K={a,b,c,d,e,f,g,h},R={r},r={}。

3.C=(K,R),其中:

K={a,b,c,d,e},R={r},r={}。

4.D=(K,R),其中:

K={48,25,64,57,82,36,75},R={r1,r2},r1={<25,36>,<36,48>,<48,57>,<57,64>,<64,75>,<75,82>};r2={<48,25>,<48,64>,<64,57>,<64,82>,<25,36>,<25,75>}。

5.E=(K,R),其中:

K={1,2,3,4,5,6,7},R={r},r={<1,2>,<2,1>,<1,4>,<4,1>,<2,3>,<3,2>,<3,4>,<4,3>,<1,3>,<3,1>}。

三、指出下列各函数的功能并求出其时间复杂度。

1.voidprime(intn)

{

inti;

for(i=2;i<=sqrt(n);i++)if(n%i==0)break;

if(i>sqrt(n))printf(“yes”);elseprintf(“no”);

}

2.longsum1(intn)

{

longsum,w,i;

for(sum=0,i=1;i<=n;i++){w=1;for(j=1;j<=i;j++)w=w×i;sum=sum+w;}

return(sum);

}

3.longsum2(intn)

{

longsum,w,i;

for(sum=0,w=1,i=1;i<=n;i++){w=w×i;sum=sum+w;}

return(sum);

}

4.voidsort(intr[],intn)

{

inti,j;

for(i=1;i

if(r[j]>r[j+1]){temp=r[j];r[j]=r[j+1];r[j+1]=temp;}

}

补充:

0.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__0.N^2__。

for(i=0;i

for(j=0;j

A[i][j]=0;

1分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__N^3__。

s=0;

for(i=0;i

for(j=0;j

for(k=0;k

s=s+B[i][j][k];

sum=s;

2分析下面算法(程序段)给出最大语句频度,该算法的时间复杂度是__根号N__。

i=s=0;

while(s

{i++;

s+=i;//s=s+i

}

3。

分析下面算法(程序段)给出最大语句频度,该算法的时间复杂度是__log(N)__。

i=1;

while(i<=n)

i=i*2;

第一章参考答案

一、填空题

1.数据元素,数据项,结构

2.数据,关系

3.树型

4.O

(1),O(n),O(log2n),O(n2)

5.线性结构,非线性结构,顺序结构,链式结构

6.无,一,无,一

7.前驱,一,无,任意

8.任意

9.O(n1/2)

分析:

设程序段中的循环体执行k次,则有不等式成立,解此不等式得到不等式,因此。

10.O

(1)

二、分析下列用二元组形式表示的数据结构,指出他们分别属于何种类型的数据结构。

1.线性结构

2.树型结构

3.图型结构

4.图型结构

分析:

数据结构D中的关系集合R有两个关系r1和r2。

如果只考虑关系r1,则为线性结构;如果只考虑关系r2,则为树型结构;如果把关系r1和r2联合起来考虑,则为图型结构。

5.图型结构

分析:

若用图形来表示则可以看出r是E上的对称关系,为了简化起见,我们通常把这两个有序偶对用一个无序偶对(x,y)或(y,x)来代替。

在用图形表示时,我们把x结点和y结点之间两条相反的弧用一条无向边来代替。

三、指出下列各函数的功能并求出其时间复杂度。

1.函数的功能是判断n是否是一个素数,其时间复杂度为O(n1/2)。

分析:

函数prime中出现的库函数sqrt为平方根函数,因此。

2.函数的计算的值,其时间复杂度为O(n2)。

3.函数的计算的值,其时间复杂度为O(n)。

4.函数的功能是对数组r中的n个元素进行冒泡排序,其时间复杂度为O(n2)。

分析:

第二章线性表

一、填空题

1.设长度为n的顺序线性表在任何位置上插入或删除操作都是等概率的,则插入一个元素时平均需要移动_______个元素,删除一个元素时平均需要移动______个元素。

2.在顺序线性表中插入一个元素时,插入位置开始后的所有元素均需要________移动一个位置。

3.在顺序线性表中删除一个元素时,被删除元素后的所有元素均需要__________移动一个位置。

4.线性表的链式存储结构中,元素之间的线性关系是通过结点中的________来实现的。

5.线性表的顺序存储结构中逻辑上相邻的元素,物理位置__________相邻;线性表的链式存储结构中逻辑上相邻的元素,物理位置____________相邻。

6.已知单链表的长度为n,则在给定值为x的结点后插入一个新结点的时间复杂度为__________。

7.已知单链表的长度为n,则删除给定值为x的结点的时间复杂度为__________。

8.在单链表中设置头结点的作用是________________________________。

9.双向链表中每个结点含有两个指针域,其中一个指针域指向_______结点,另一个指针域指向______结点。

10.在长度为n的线性表中顺序查找某个结点值为X的时间复杂度为______________。

二、选择题

1.在长度为n的顺序线性表中删除第i个元素(1<=i<=n),则需要向前移动的元素个数为()。

⑴n-i⑵n+1-i⑶n-1-i⑷i

2.建立一个长度为n的单链表的时间复杂度为()。

⑴O(n)⑵O

(1)⑶O(n2)⑷((log2n)

3.设指针p指向单链表中的结点A,结点A的后继结点是结点B,则删除结点B的操作为()。

⑴p->next=p⑵p=p->next

⑶p=p->next->next⑷p->next=p->next->next

4.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B之间插入结点X的操作为()。

⑴s->next=p->next;p->next=s;⑵q->next=s;s->next=p;

⑶p->next=s->next;s->next=p;⑷p->next=s;s->next=q;

5.在长度为n的顺序线性表中的第i个元素(1<=i<=n+1)之前插入一个新元素时,则需要向后移动的元素个数为()。

⑴n-i⑵n+1-i⑶n-1-i⑷i

6.在长度为n的有序线性表中插入一个元素后仍然保持有序的平均时间复杂度为()。

⑴O(log2n)⑵O

(1)⑶O(n2)⑷O(n)

7.设指针p指向双向链表中的结点A,指针s指向被插入的结点X,则在结点A之后插入结点X的操作为()。

⑴p->rlink=s;s->llink=p;p->rlink->llink=s;s->rlink=p->rlink;

⑵s->llink=p;s->rlink=p->rlink;p->rlink=s;p->rlink->llink=s;

⑶p->rlink=s;p->rlink->llink=s;s->llink=p;s->rlink->p->rlink;

⑷s->llink=p;s->rlink=p->rlink;p->rlink->llink=s;p->rlink=s;

8.指针p指向双向链表中的结点A,则删除结点A的操作是()。

⑴p->llink->rlink=p->rlink;p->rlink->llink=p->llink;

⑵p->rlink->llink=p->rlink;p->llink->llink=p->llink;

⑶p->llink->rlink=p->llink;p->rlink->llink=p->rlink;

⑷p->rlink->rlink=p->rlink;p->rlink->rli

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1