数据结构复习Word文档下载推荐.docx

上传人:b****5 文档编号:21653447 上传时间:2023-01-31 格式:DOCX 页数:125 大小:380.62KB
下载 相关 举报
数据结构复习Word文档下载推荐.docx_第1页
第1页 / 共125页
数据结构复习Word文档下载推荐.docx_第2页
第2页 / 共125页
数据结构复习Word文档下载推荐.docx_第3页
第3页 / 共125页
数据结构复习Word文档下载推荐.docx_第4页
第4页 / 共125页
数据结构复习Word文档下载推荐.docx_第5页
第5页 / 共125页
点击查看更多>>
下载资源
资源描述

数据结构复习Word文档下载推荐.docx

《数据结构复习Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构复习Word文档下载推荐.docx(125页珍藏版)》请在冰豆网上搜索。

数据结构复习Word文档下载推荐.docx

(B)数据项之间逻辑

(C)数据类型之间

(D)存储结构

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、某算法的时间复杂度为O(n2),表明该算法的_________。

(A)问题的规模是n2

(B)执行时间等于n2

(C)执行时间与n2成正比

(D)问题规模与n2成正比

11、在数据结构中,与所使用的计算机无关的是数据的____结构。

(A)逻辑(B)存储(C)逻辑和存储(D)物理

12、在数据的存储结构中,一个存储结点存储一个_____。

(A)数据项(B)数据元素(C)数据结构(D)数据类型

13、在数据结构中,与所使用的计算机无关的是______。

(A)逻辑结构(B)存储结构

(C)物理结构(D)逻辑结构与存储结构

 

判断题:

1、数据结构包含数据的逻辑结构、数据的存储结构以及数据集合上定义的运算。

2、数据项是数据的最小单位。

3、数据项是数据的最小单位。

4、数据结构包含数据的逻辑结构、数据的存储结构以及数据集合上定义的运算。

5、数据的物理结构是指数据在计算机内实际的存储形式。

6、算法的优劣与算法描述语言无关,但与所用计算机有关。

应用题与算法设计题部分:

例题:

设计一个算法,求整数数组的最大元素。

解:

算法如下:

voidMaxElem(inta[],intn,int&

maxE)

{intk;

maxE=a[0];

for(k=0;

k<

n;

k++)

if(maxE<

a[k])maxE=a[k];

}

//注:

maxE表示数组a[]的前n个元素的最大元素。

设计一个算法,求整数数组的最小元素。

voidMinElem(inta[],intn,int&

minE)

minE=a[0];

if(minE>

a[k])minE=a[k];

编写一个算法,求一个整数数组中的最大元素和最小元素,并指出该算法的时间复杂度。

对应的算法如下:

voidMaxMin(inta[],intn,int&

max,int&

min)

//该算法求数组a[0......n-1]的最大元素max和最小元素min。

{max=min=a[0] 

;

for(inti=1 

i<

=n-1 

i++)

{if(a[i]>

max)max=a[i] 

elseif(a[i]<

min)min=a[i] 

该算法的时间复杂度为O(n)。

编写一个算法,求一个整数数组中的最大元素和次大元素,并指出该算法的时间复杂度。

voidMax12(inta[],intn,int&

max1,int&

max2)

//该算法求数组a[0......n-1]的最大元素max1和次大元素max2。

{if(a[0]>

a[1]){max1=a[0] 

max2=a[1] 

else{max1=a[1];

max2=a[0];

for(inti=2;

=n-1;

max1){max2=max1;

max1=a[i];

elseif(a[i]>

max2)max2=a[i];

编写一个算法,求一个整数数组中的最小元素和次小元素,并指出该算法的时间复杂度。

voidMin12(inta[],intn,int&

min1,int&

min2)

//该算法求数组a[0……n-1]的最小元素min1和次小元素min2。

{if(a[0]<

a[1]){min1=a[0];

min2=a[1];

else{min1=a[1];

min2=a[0];

{if(a[i]<

min1){min2=min1;

min1=a[i];

min2)min2=a[i];

用C/C++语言描述下列算法,并给出算法的时间复杂度。

(1)求一个n阶方阵的所有元素之和。

(2)对于输入的任意三个整数,将它们按照从小到大的顺序输出。

(3)对于输入的任意n个整数,输出其中的最大和最小元素。

(1)算法如下:

intsum(intA[n][n],intn)

{inti,j,s=0;

for(i=0;

for(j=0;

j<

j++)s+=A[i][j];

returns;

本算法的时间复杂度为O(n2)。

(2)算法如下:

voidOrder(inta,intb,intc)

{if(a>

b)

{if(b>

c)cout<

<

c<

b<

a;

elseif(a>

elsecout<

a<

c;

else

{if(c<

a)cout<

b;

elseif(c<

b)cout<

elsecout<

本算法的时间复杂度为O

(1)。

(3)算法如下:

voidmaxmin(inta[],intn,int&

min=a[0];

max=a[0];

for(k=1;

if(a[k]>

max)max=a[k];

elseif(a[k]<

min)min=a[k];

本算法的时间复杂度为O(n)。

设n是3的倍数,分析以下算法的时间复杂度(需给出推导过程)。

voidfun(intn)

{inti,j,x,y;

for(i=0;

i<

=n;

if(3*i<

=n)

for(j=3*i;

j<

j++){x++;

y=3*x+2;

}

第2章线性表

线性表的逻辑结构特征,线性表的基本运算,线性表的两种存储结构,以及在这两种存储结构下线性表的基本运算算法的实现,顺序表和链表的优缺点比较。

掌握线性表的定义和特点,线性表的存储结构;

顺序表和链表的组织方法和算法设计。

单链表和双链表的各种算法设计。

1、线性表是_________。

(A)一个有限序列,可以为空(B)一个有限序列,不可以为空

(C)一个无限序列,可以为空(D)一个无限序列,不可以为空

2、链表不具有的特点是_________。

(A)可以随机访问任一元素(B)插入删除不需要移动元素

(C)不必事先估计存储空间(D)所需空间与线性表长度成正比

3、线性表采用链式存储结构时,其地址_________。

(A)必须是连续的(B)一定是不连续的

(C)部分地址必须是连续的(D)连续与否均可以

4、在线性表的的下列存储结构中,读取指定序号的元素花费时间最少的是_________。

(A)单链表(B)双链表(C)循环链表(D)顺序表

5、若线性表最常用的运算是存取第i个元素及其前趋的值,则采用_________存储方式节省时间。

(A)单链表(B)双链表(C)循环单链表(D)顺序表

6、在一个具有n个结点的有序单链表中插入一个新结点使得仍然有序,其算法的时间复杂度为_________.

(A)O(log2n)(B)O

(1)(C)O(n2)(D)O(n)

7、在一个单链表中,删除*p结点之后的一个结点的操作是_________。

(A)p->

next=p(B)p->

next->

next=p->

next

(C)p->

next=p(D)p->

8、在一个长度为n的线性表中顺序查找值为x的元素时,在等概率情况下,查找成功时的平均查找长度为_________。

(A)n(B)n/2(C)(n+1)/2(D)(n-1)/2

9、在一个长度为n的顺序表中,删除值为x的元素时需要比较元素和移动元素的总次数是_________。

(A)(n+1)/2(B)n/2(C)n(D)n+1

10、在一个顺序表的表尾插入一个元素的时间复杂度是_________。

(A)O(n)(B)O

(1)(C)O(n2)(D)O(log2n)

11、在一个顺序表的任何位置插入一个元素的时间复杂度是_________。

12、在一个不带头结点(首结点为*head)的单循环链表中,至少有一个结点的条件是_________。

(A)head!

=NULL(B)head->

next!

=NULL

(C)head==NULL(D)head->

next==NULL

13、在带头结点*head的循环单链表中,至少有一个结点的条件是_________。

(A)head->

=head

(C)head==NULL(D)head-<

14、带头结点的单链表head为空的判定条件是_________。

(A)head==NULL(B)head->

(C)head->

next==head(D)head!

15、将两个长度为n的有序表归并为一有序表时,算法的时间复杂度是_________。

(A)O

(1)(B)O(n)(C)O(n2)(D)O(log2n)

16、在长度为n的顺序表,当在任何位置上插入一个元素的概率相等时,插入一个元素需要移动的元素的平均个数为()

(A)n/2(B)(n-1)/2(C)(n+1)/2(D)(n+2)/2

17、在长度为n的顺序表中,删除第i个元素(1≤i≤n)需要向后移动()个元素。

(A)n-i(B)n-i+1(C)n-i-1(D)i

18、一个栈的入栈顺序是1、2、3、4、5,则此栈不可能的输出顺序为()。

(A)5、4、3、2、1(B)4、5、3、2、1

(C)4、3、5、1、2(D)1、2、3、4、5

19、一个队列的入队序列是a,b,c,d,则队列的输出序列是()。

(A)dcba(B)abcd(C)adcb(D)cbda

20、空串是指()。

(A)空白串(B)长度为零的串(C)长度为1的串(D)仅由空格组成的串

21、在链式存储结构中,一个存储结点存储一个_____。

(A)数据项(B)数据元素(C)数据结构(D)数据类型

22、算法分析的目的是_______________。

(A)找出数据结构的合理性(B)研究算法中输入和输出的关系

(C)分析算法的效率以求改进(D)分析算法的易读性和文档性

23、一个队列的入队序列是abcd,则队列的输出序列是_____。

24、在表长为n的顺序表上做插入运算,平均要移动的结点数为()。

(A)n(B)n/2(C)n/3(D)n/4

25、在双链表某结点(己知其地址)前,插入一新结点,其所需时间是()。

(A)O

(1)(B)O(lgn)(C)O(n)(D)O(n2)

26、设长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为()。

(A)O

(1)(B)O(lgn)(C)O(n)DO(n2)

27、在表长为n的顺序表上做删除运算,在等概率的情况下,平均要移动的结点数为()。

(A)n/2(B)(n-1)/2(C)n/3(D)n/4

28、线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()

(A)O(i)(B)O

(1)(C)O(n)(D)O(n/2)

29、线性表的下列存储结构中,读取指定序号的元素花费的时间最少的是______。

(A)单链表(B)顺序表(C)双链表(D)循环链表

30、线性表采用链式存储结构时,其地址_________。

(C)部分地址必须是连续的(D)连续与否均可

31、在线性表的下列存储结构中,读取指定序号的元素花费时间最少的是____。

(A)单链表(B)双链表(C)循环链表(D)顺序表

32、若某线性表中最常用的操作是提取第i个元素及找第i个元素的前驱元素,则采用()存储方式最省时间。

(A)单链表(B)双链表(C)单向循环链表(D)顺序表

33、在长度为n的顺序表中,向第i个元素(1≤i≤n+1)前插入一个元素需要向后移动()个元素。

34、在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()。

(A)q->

next;

p->

next=q;

(B)p->

next=q->

q=p;

q->

(D)p->

nxet=p;

35、在表长为n的顺序表上做插入运算,平均要移动的结点数为()。

36、在双链表某结点(己知其地址)前,插入一新结点,其所需时间是()。

37、在长度为n的顺序表中,当在任何位置插入一个元素的概率相等时,插入一个元素需要移动的元素的平均个数是________。

(A)n/2(B)(n-1)/2(C)(n+1)/2(D)(n+2)/2

38、若某线性表中最常用的操作是提取第i个元素及找第i个元素的前驱元素,则采用()存储方式最省时间。

49、在长度为n的顺序表中,向第i个元素(1≤i≤n+1)前插入一个元素需要向后移动()个元素。

40、在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()。

1、顺序查找方法只能在顺序存储结构上进行。

2、线性表的顺序存储结构优于链式存储结构。

3、对于单链表来说,只有从头结点开始才能扫描表中全部结点。

4、对于单链表来说,只有从头结点开始才能扫描表中全部结点。

5、双向链表的特点是很容易找任何一个结点的前趋和后继。

6、线性表的顺序存储结构优于链式存储结构。

7、凡是为空的单链表都是不含任何结点的。

8、向顺序表中插入一个元素,平均要移动大约一半的元素。

9.线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。

10、线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。

11、线性表采用链式存储时,结点和结点内部的存储空间可以是不连续的。

12、单链表中的头结点就是单链表的第一个结点。

13、在带头结点的单循环链表中,任何一个结点的后继结点的指针均非空。

14、线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都相同。

15、分配给单链表的内存单元地址必须是连续的。

16、双向链表的特点是很容易找任何一个结点的前趋和后继。

17、线性表的顺序存储结构优于链式存储结构。

18、对于单链表来说,只有从头结点开始才能扫描表中全部结点。

19、线性表就是顺序表。

20、线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。

21、在带头结点的单循环链表中,任一结点的后继指针均非空。

22、线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。

23、在带头结点的单循环链表中,任一结点的后继指针均非空。

24、线性表采用链式存储时,结点和结点内部的存储空间可以是不连续的。

填空题:

1、单链表是的链接存储表示。

2、在有n个元素的顺序表中删除任意一个元素所需移动结点的平均次数是。

3、在双链表中,每个结点有两个指针域,一个指向另一个指向。

4、在带有头结点的单链表L中,第一个元素结点的指针是

例题、叙述线性表的两种存储结构各自的主要特点。

答:

线性表的两种存储结构分别是顺序存储结构和链式存储结构。

顺序存储结构的主要特点是:

(1)结点中只有自身的信息域,没有关联信息域。

因此,顺序存储结构的存储密度大、存储空间利用率高。

(2)通过计算地址直接访问任何数据元素,即可以随机访问。

(3)插入和删除操作会引起大量元素的移动。

链式存储结构的主要特点是:

(1)结点除自身的信息域外,还有表示关联信息的指针域。

因此,链式存储结构的存储密度小、存储空间利用率低。

(2)在逻辑上相邻的结点在物理上不必相邻,因此,不可以随机存取,只能顺序存取。

(3)插入和删除操作方便灵活,不必移动结点只需修改结点中的指针域即可。

例题、已知顺序表L,请设计一算法,在L的第i个位置插入x。

存储结构如下:

typedefstructSqList

{ElemType*elem;

intlength;

intlistsize;

}SqList;

在顺序表L的第i个位置(下标为i-1)上插入x的算法如下:

voidInsertSqList(SqList&

L,inti,ElemTypex)

{ElemType*p,*q;

if(i<

1||i>

L.length)return;

//插入位置不合法。

p=&

L.elem[i-1];

q=&

L.elem[L.length-1];

while(q>

=p){*(q+1)=*q;

q--;

}  //后移

*p=x;

  //插入

L.length++;

例题、已知顺序表L,请设计一个算法,删除L中所有值为x的结点。

voidDeleteAllx(SqList&

L,ElemTypex)

{intnum=0;

inti,j;

i=0;

j=0;

while(j<

=L.length-1)

if(L.elem[j]==x){j++;

num++;

}elseL.elem[i++]=L.elem[j++];

L.length=L.length-num;

例题、已知顺序表L是有序表,其值从小到大,请编写算法,在L中插入一个数据元素x并且保持L的有序性。

voidInsertOrderSqList(SqList&

{intk=L.length-1;

while(k>

=0&

&

x<

L.elem

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

当前位置:首页 > 高等教育 > 工学

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

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