数据结构C语言2016总复习(附带试卷及答案)Word格式.doc

上传人:b****3 文档编号:14924320 上传时间:2022-10-26 格式:DOC 页数:20 大小:260.50KB
下载 相关 举报
数据结构C语言2016总复习(附带试卷及答案)Word格式.doc_第1页
第1页 / 共20页
数据结构C语言2016总复习(附带试卷及答案)Word格式.doc_第2页
第2页 / 共20页
数据结构C语言2016总复习(附带试卷及答案)Word格式.doc_第3页
第3页 / 共20页
数据结构C语言2016总复习(附带试卷及答案)Word格式.doc_第4页
第4页 / 共20页
数据结构C语言2016总复习(附带试卷及答案)Word格式.doc_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据结构C语言2016总复习(附带试卷及答案)Word格式.doc

《数据结构C语言2016总复习(附带试卷及答案)Word格式.doc》由会员分享,可在线阅读,更多相关《数据结构C语言2016总复习(附带试卷及答案)Word格式.doc(20页珍藏版)》请在冰豆网上搜索。

数据结构C语言2016总复习(附带试卷及答案)Word格式.doc

3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为(C)。

A.O

(1)B.O(n)

C.O(1Ogzn)D.O(n2)

4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(D)。

A.24B.48

C.72D.53

5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为(B)参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型

C.指针型D.常值引用型·

6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为(A)。

A.O(n)B.O

(1)

C.O(n2)D.O(10g2n)

二、填空题(每空1分,共28分)

1.数据的存储结构被分为/顺序结构/链接结构/索引结构/散列结构/四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为(值(或data))域和(子表指针(或sublist))域。

3.——中缀表达式3十x*(2.4/5—6)所对应的后缀表达式为——。

3x2.45/6一*十

4.在一棵高度为h的3叉树中,最多含有((3h一1)/2)结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为(5),最大深度为(18)·

6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定(小于)该结点的值,右子树上所有结点的值一定(大于(或大于等于))该结点的值。

7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层(向上)调整,直到被调整到(堆顶)位置为止。

8.表示图的三种存储结构为(邻接矩阵邻接表边集数组)。

9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为(O(n2)),对用邻接表表示的图进行任一种遍历时,其时间复杂度为(O(e))。

10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为

(1)和(3)·

11.假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均为,则进行索引顺序查找的平均查找长度为13,时间复杂度为O(e)·

12.一棵B—树中的所有叶子结点均处在(同一层)上。

13.每次从无序表中顺序取出一个元素,把这插入到有序表中的适当位置,此种排序方法叫做(插入)排序;

每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做(选择)排序。

14.快速排序在乎均情况下的时间复杂度为(O(nlog2n)),最坏情况下的时间复杂度为(O(n2))。

三、运算题(每小题6分,共24分)

1.假定一棵二叉树广义表表示为a(b(c,d),c(((,8))),分别写出对它进行先序、中序、后序和后序遍历的结果。

先序:

a,b,c,d,e,f,e

中序:

c,b,d,a,f,8,e

后序:

c,d,b,e,f,e,a

2.已知一个带权图的顶点集V和边集G分别为:

V={0,1,2,3,4,5};

E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(4,5)10},

则求出该图的最小生成树的权。

答:

最小生成树的权:

31

3.假定一组记录的排序码为(46,79,56,38,40,84,50,42),则利用堆排序方法建立的初始堆为((84,79,56,42,40,46,50,38))。

4.有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点生成一棵哈夫曼树,求出该树的带权路径长度、高度、双分支结点数。

带权路径长度:

131高度:

5双分支结点数:

6。

四、阅读算法,回答问题(每小题8分,共16分)

1.VOldAC(List&

L)

{

InitList(L);

InsertRear(L;

25);

InsertFront(L,50);

IntaL4]={5,8,12,15,36};

for(inti=0;

i<

5;

i++)

if(a[i]%2==0)InsertFront(L,a[i]);

elselnsertRear(L,a[i]);

}

该算法被调用执行后,得到的线性表L为:

(36,12,8,50,25,5,15)

2.voidAG(Queue&

Q)

InitQueue(Q);

inta[5]={6,12,5,15,8};

for(inti=0;

i<

i++)QInsert(Q,a[i]);

QInsert(Q,QDelete(Q));

QInsert(Q,20);

QInsert(Q,QDelete(Q)十16);

while(!

QueueEmpty(Q))cout<

<

QDelete(Q)<

”;

该算法被调用后得到的输出结果为:

515862028

五、算法填空,在画有横线的地方填写合适的内容(每小题6分,共12分)

1.从一维数组A[n)中二分查找关键字为K的元素的递归算法,若查找成功则返回对应元素的下标,否则返回一1。

IntBinsch(ElemTypeA[],Intlow,inthigh,KeyTypeK)

if(low<

=high)

intmid=(low+high)/2;

if(K==A[mid].key)feturnmid;

elseif(K<

A[mid].key)returnBinsch(A,low,mid一1,K);

elsereturnBmsch(A,mid+1,high,K);

elsereturn—l;

2.已知二叉树中的结点类型BinTreeNode定义为:

structBinTreeNode{ElemTypedata;

BinTreeNode*left,*right};

其中data为结点值域,left和right分别为指向左、右子女结点的指针域。

下面函数的功能是返回二叉树BT中值为x的结点所在的层号,请在划有横线的地方填写合适内容。

IntNodeLevel(BinTreeNode*BT,ElemTypeX)

if(BT:

=NULL)return0;

//空树的层号为0

elseif(BT—>

data==X)return1;

//根结点的层号为1

//向子树中查找x结点

else{

intcl=NodeLevel(BT—>

left,X);

if(cl>

=1)returncl+1;

intc2=;

if——;

//若树中不存在X结点则返回o

elsereturn0;

六、编写算法(8分)

按所给函数声明编写一个算法,从表头指针为HL的单链表中查找出具有最大值的结点,该最大值由函数返回,若单链表为空则中止运行。

EIemTypeMaxValue(LNOde*HL);

if(HL==NUlL)

{

cerr<

"

Linkedllstisempty!

”<

endl;

exit

(1);

}

ElemTypemax:

HL—>

data;

//3分

LNOde*p=HI—>

next;

//4分

while(P!

NULL)

{//7分

if(max<

p—>

data)max=p—>

p=p—>

Returnmax;

//8分

}

数据结构复习资料

一、填空题

1.数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2.数据结构被形式地定义为(D,R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4.数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;

最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;

叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10.数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11.一个算法的效率可分为时间效率和空间效率。

12.在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

13.线性表中结点的集合是有限的,结点间的关系是一对一的。

14.向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1个元素。

15.向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i个元素。

16.在顺序表中访问任意一结点的时间复杂度均为O

(1),因此,顺序表也称为随机存取的数据结构。

17.顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

18.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

19.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

20.向量、栈和队列都是线性结构,

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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