大学学习资料:数据结构(c语言版)复习资料_第1页
大学学习资料:数据结构(c语言版)复习资料_第2页
大学学习资料:数据结构(c语言版)复习资料_第3页
大学学习资料:数据结构(c语言版)复习资料_第4页
大学学习资料:数据结构(c语言版)复习资料_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构(c语言版)复习资料算,在表的另一端进行删除运算的线性表。

23.不包含任何字符(长度为0)的串称为空串:

由一个或多个空格(仅由空格符)组成的串称为空

一、填空题白串。

数据结构是一门研究非数值计算的程序设计问题中

1.24.子串的定位运算称为串的模式匹配;被匹配的主

计算机的操作对象以及它们之间的关系和电—称为目标串,子串称为模式。

运算等的学科。

25.假设有二维数组Aexs每个元素用相邻的6个字节

2.数据结构被形式地定义为(D,R),其中D是数据存储,存储器按字节编址。已知A的起始存储位置(基

元素的有限集合,是上的关系有限集合。

RD地址)为1000,则数组A的体积(存储量)为—288

数据结构包括数据的逻辑结构、数据的存储结构

3.B;末尾元素A的第一个字节地址为1282;

和数据的运算这三个方面的内容。57

若按行存储时,元素Au的第一个字节地址为(8+4)X

数据结构按逻辑结构可分为两大类,它们分别是

4.6+1000=1072:若按列存储时,元素A”的第一个字

线性结构和非线性结构。

节地址为(6X7+4)X6+1000)=1276。

线性结构中元素之间存在二对二关系,树形结构中元

5.26.由3个结点所构成的二叉树有匚种形态。

素之间存在一对多关系,图形结构中元素之间存在钮

27.一棵深度为6的满二叉树有m+n2=O+n2=

塞关系。

n(“=31个分支结点和=32个叶子。

在线性结构中,第一个结点没有前驱结点,其

6.注:满二叉树没有度为1的结点,所以分支结点数就是

余每个结点有且只有1个前驱结点;最后一个结点3二度结点数。

有_后续结点,其余每个结点有且只有个后续结点。

128.一棵具有257个结点的完全二叉树,它的深度

在树形结构中,树根结点没有前驱结点,其余每

7.为9。

个结点有且只有1个前驱结点;叶子结点没有_(注:fflLlog2(n)J+l=L8.xxJ+l=9

后续结点,其余每个结点的后续结点数可以任意多

29.设一棵完全二叉树有700个结点,则共有350个

个o叶子结点。

8.在图形结构中,每个结点的前驱结点数和后续结点数答;"快方法:用叶子数=[n/2]=350

可以任意多个。

9.数据的存储结构可用四种基本的存储方法表示,它30.设一棵完全二叉树具有1000个结点,则此完全二

们分别是顺序、链式、索引和散列。叉树有500个叶子结点,有499个度为2的结点,

10.数据的运算最常用的有5种,它们分别是插入、删有1个结点只有非空左子树,有个结点只

除、修改、查找、排序。有非空右子树。

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

答:最快方法:用叶子数=[n/2]=500,n2=n0-l=499.

效率。另外,最后一结点为2i属于左叶子,右叶子是空的,所

12.在顺序表中插入或删除一个元素,需要平均移动空以有1个非空左子树。完全二叉树的特点决定不可能有

中一半元素,具体移动的元素个数与表长和该元素在左空右不空的情况,所以非空右子树数=0.

表中的位置有关。31.在数据的存放无规律而言的线性表中进行检索的最

13.线性表中结点的集合是有限的,结点间的关系佳方法是顺序查找(线性查找)。

—~~*的。32.线性有序表(a”a:,a3,…,a256)是从小到大排列

14.向一个长度为n的向量的第i个元素(lWi《n+l)之的,对一个给定的值k,用二分法检索表中与k相等的

前插入一个元素时,需向后移动n-i+1个元素。元素,在查找不成功的情况下,最多需要检索3次。

15.向一个长度为n的向量中删除第i个元素(iWiWn)设有100个结点,用二分法查找时,最大比较次数是

时,需向前移动n-i个元素。

16.在顺序表中访问任意一结点的时间复杂度均为一33.假设在有序线性表a[20]上进行折半查找,则比较一

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

次查找成功的结点数为1:比较两次查找成功的结点数

17.顺序表中逻辑上相邻的元素的物理位置当定相邻。为2:比较四次查找成功的结点数为平均

单链表中逻辑上相邻的元素的物理位置坯二卷相邻。查找长度为3J»

18.在单链表中,除了首元结点外,任一结点的存储位置由事:显然,平均查找长度=0(logzn)<5次(2$)。但具

直接前驱结点的链域的值指示。体是多少次,则不应当按照公五

19.在n个结点的单链表中要删除已知结点*p,需找

AS£=—log(n+l)Ai+#(即(21Xlog21)/20=4.6

到它的前驱结点的地址,其时间复杂度为O(n)。n22

20.栈只能在栈顶插入和删除元素:对于队列只能次并不正确!因为这是在假设n=2"-1的情况下

在队尾插入和队首删除元素。推导出来的公式。应当用穷举法罗列:

21.栈是一种特殊的线性表,允许插入和删除运算的一全部元素的查找次数为=(1+2X2+4X3+8X4

端称为栈顶。不允许插入和删除运算的一端称+5X5)=74;ASL=74/20=3.7!!!

为栈底°34.折半查找有序表(4,6,12,20,28,38,50,70,

22.队列是被限定为只能在表的一端进行插入运88,100),若查找表中元素20,它将依次与表中元素

28,6,12,20比较大小«栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运

35.在各种查找方法中,平均查找长度与结点个数n无算的定义略有不同而已。

关的查找方法是散列查找。(X)15.栈和链表是两种不同的数据结构。

36.散列法存储的基本思想是由关键字的值决错,栈是逻辑结构的概念,是特殊殊线性表,而

链表是存储结构概念,二者不是同类项。

定数据的存储地址。

(X)16.栈和队列是一种非线性数据结构。

二、判断正误(在正确的说法后面打勾,反之打错,他们都是线性逻辑结构,栈和队列其实是特

叉)殊的线性表,对运算的定义略有不同而已。

(X)1.链表的每个结点中都恰好包含一个指针。(V)17.栈和队列的存储方式既可是顺序方式,也

答:错误。链表中的结点可含多个指针域,分别存放多个指针。可是链接方式。

例如,双向链表中的结点可以含有两个指针域,分别存放指向其(V)18.两个栈共享一片连续内存空间时,为提高

直接前趋和直接后继结点的指针。内存利用率,减少溢出机会,应把两个

(X)2.链表的物理存储结构具有同链表一样的顺栈的栈底分别设在这片内存空间的两

序。错,链表的存储结构特点是无序,而链表的示意图有序。端。

(X)3.链表的删除算法很简单,因为当删除链中(x)19.队是一种插入与删除操作分别在表的两端

某个结点后,计算机会自动地将后续的各进行的线性表,是一种先进后出型结构。

个单元向前移动。错,后半句不对。

错,链表的结点不会移动,只是指针内容改变。(X)20.一个栈的输入序列是12345,则栈的输出

(X)4.线性表的每个结点只能是一个简单类型,序列不可能是12345。

而链表的每个结点可以是一个复杂类型。错,有可能。

错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺(J)21.若二叉树用二叉链表作存贮结构,则在n

序表,也能存放记录型数据。个结点的二叉树链表中只有n—1个非空指针域。

(X)5.顺序表结构适宜于进行顺序存取,而链表(X)22.二叉树中每个结点的两棵子树的高度差等于

适宜于进行随机存取。

错,正好说反了。顺序表才适合随机存取,链表恰恰适于“顺藤(V)23.二叉树中每个结点的两棵子树是有序的。

摸瓜”(X)24.二叉树中每个结点有两棵非空子树或有两棵

(X)6.顺序存储方式的优点是存储密度大,且插

空子树。

入、删除运算效率高。

(X)25.二叉树中每个结点的关键字值大于其左非空

错,前一半正确,但后一半说法错误,那是链式存储的优点。顺

子树(若存在的话)所有结点的关键字值,

序存储方式插入、删除运算效率较低,在表长为n的顺序表中,

插入和删除一个数据元素,平均需移动表长一半个数的数据元且小于其右非空子树(若存在的话)所有结

素。点的关键字值。(应当是二叉排序树的

(X)7.线性表在物理存储空间中也一定是连续的。特点)

错,线性表有两种存储方式,顺序存储和链式存储。后者不要求(X)26二叉树中所有结点个数是2kL1,其中k是

连续存放。树的深度。(应2口)

(X)8.线性表在顺序存储时,逻辑上相邻的元素(X)27.二叉树中所有结点,如果不存在非空左子树,

未必在存储的物理位置次序上相邻。则不存在非空右子树。

错误。线性表有两种存储方式,在顺序存储时,逻辑上相邻的元(X)28.对于一棵非空二叉树,它的根结点作为第一

素在存储的物理位置次序上也相邻。

层,则它的第i层上最多能有2—1个结点。(应2”)

(X)9.顺序存储方式只能用于存储线性结构。

(V)29用二叉链表法(link-rlink)存储包含n个结

错误。顺序存储方式不仅能用于存储线性结构,还可以用来

存放非线性结构,例如完全二叉树是属于非线性结构,但其点的二叉树,结点的2n个指针区域中有n+1

最佳存储方式是顺序存储方式。(后一节介绍)个为空指针.

(X)10.线性表的逻辑顺序与存储顺序总是一致(V)30.具有12个结点的完全二叉树有5个度为2

的。的结点。

错,理由同7。链式存储就无需一致。(X)31.在哈夫曼树中,权值最小的结点离根结点最

(X)11.线性表的每个结点只能是一个简单类型,近。

而链表的每个结点可以是一个复杂类型。(X)32.一个广义表的表头总是一个广义表。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素(V)33广义表(((a),b),c)的表头是((a),b),表尾

数据类型无关。是(c)。

(x)12.在表结构中最常用的是线性表,栈和队列

(X)34顺序存储方式只能用于存储线性结构。

不太常用。

错,不一定吧?调用子程序或函数常用,CPU中也用队列。(B)1,非线性结构是数据元素之间存在一种:

(V)13.栈是一种对所有插入、删除操作限于在表A)一对多关系B)多对多关系

的一端进行的线性表,是一种后进先出型结构。C)多对一关系D)一对一关系

(V)14.对于不同的使用者,一个表结构既可以是(C)2.数据结构中,与所使用的计算机无关的是

数据的结构;(A)必须是连续的(B)部分地址

A)存储B)物理C)逻辑必须是连续的

D)物理和存储(C)一定是不连续的(D)连续或不

连续都可以

(C)3.算法分析的目的是:(B)14.线性表L在情况下适用于使用

A)找出数据结构的合理性B)研链式结构实现。

究算法中的输入和输出的关系(A)需经常修改L中的结点值(B)

C)分析算法的效率以求改进D)分需不断对L进行删除插入

析算法的易懂性和文档性(C)L中含有大量的结点(D)

L中结点结构复杂

(A)4.算法分析的两个主要方面是:(B)15.栈中元素的进出原则是

A)空间复杂性和时间复杂性B)正确性和简明A.先进先出B.后进先出

性C.栈空则进D.栈满则出

C)可读性和文档性D)数据复杂性和(C)16.若已知一个栈的入栈序列是1,2,3,…,

程序复杂性n,其输出序列为pl,p2,p3,…,pn,若pl=n,则

(C)5.计算机算法指的是:pi为

A)计算方法B)排序方法C)解决问题的有A.iB.n=iC.n-i+1D.不确定

限运算序列D)调度方法(B)17.判定一个栈ST(最多元素为mO)为空

(B)6.计算机算法必须具备输入、输出和的条件是

等个特性。

5A.ST->top<>0B.ST->top=0

A)可行性、可移植性和可扩充性B)可行性、C.ST->top<>mOD.ST->top=mO

确定性和有穷性(C)18.在一个图中,所有顶点的度数之和等于图

C)确定性、有穷性和稳定性D)易读性、的边数的倍。

稳定性和安全性A.1/2B.1C.2D.4

(C)7.数据在计算机存储器内表示时,物理地址(B)19.在一个有向图中,所有顶点的入度之和

与逻辑地址相同并且是连续的,称之为:等于所有顶点的出度之和的倍。

(A)存储结构(B)逻辑结构(C)顺序A.1/2B.1C.2D.4

存储结构(D)链式存储结构(B)20.有8个结点的无向图最多有条边。

(B)8.一个向量第一个元素的存储地址是100,每A.14B.28C.56D.112

个元素的长度为2,则第5个元素的地址是(C)21.有8个结点的有向完全图有条边。

(A)110(B)108(C)100(D)120A.14B.28C.56D.11

(A)9.在n个结点的顺序表中,算法的时间复杂对矩阵进行压缩存储是为了D•

度是O(1)的操作是:A.方便运算B.方便存储C.提高运算速度

(A)访问第i个结点(iWiWn)和求第iD.减少存储空间

个结点的直接前驱(2WiWn)设有一个10阶的对称矩阵A,采用压缩存储方式,以

(B)在第i个结点后插入一个新结点(1行序为主存储,।为第一个元素,其存储地址为1,

Wi<n)每个元素占1个地址空间,则a*5的地址为B。

(C)删除第i个结点(iWiWn)A.13B.33C.18D.40

(D)将n个结点从小到大排序允许对队列进行的操作有。

(B)10.向一个有127个元素的顺序表中插入一A.对队列中的元素排序B.取出最近进队

个新元素并保持原来顺序不变,平均要移动_个元素的元素

(A)8(B)63.5(C)63(D)7C.在队头元素之前插入元素D.删除队头元素

(A)11.链接存储的存储结构所占存储空间:输入序列为ABC,可以变为CBA时,经过的栈操作为

(A)分两部分,一部分存放结点值,另B1,

一部分存放表示结点间关系的指针A.push,pop,push,pop,push,popB.push,

(B)只有一部分,存放结点值push,push,pop,pop,pop

(C)只有一部分,存储表示结点间关系的指针C.push,push,pop,pop,push,popD.push,

(D)分两部分,一部分存放结点值,另一部分存放结pop,push,push,pop,pop

点所占单元数(B)22.在表长为n的链表中进行线性查找,它

B)12.链表是一种采用存储结构存储的的平均查找长度为

线性表;A.ASL=n;B.ASL=(n+l)/2;

(A)顺序(B)链式(C)星式(D)网状

C.ASL=+1;D.ASL^log(n+

(D)13.线性表若采用链式存储结构时,要求内2

存中可用存储单元的地址:1)-1

(A)23.折半查找有序表(4,6,10,12,20,集合对应前序遍历序列中的元素集合,可继续确定root

30,50,70,88,100)o若查找表中元素58,则它将依的左右孩子。将他们分别作为新的root,不断递归,则

次与表中比较大小,查找结果是失败。所有元素都将被唯一确定,问题得解。

A.20,70,30,50B.30,88,70,50

C.20,50D.30,88,50D

(C)24.对22个记录的有序表作折半查找,当查

找失败时,至少需要比较次关键

字。

A.3B.4C.5D.6

(A)25.链表适用于_______查找6.试写出如图所示的二叉树分别按先序、中序、后序遍

A.顺序B.二分法C.顺序,也能二分法D.随机历时得到的结点序列。

四、简答题答:DLR:ABDFJGKCEHILM

1.数据结构和数据类型两个概念之间有区别吗?LDR:BFJDGKACHELIM

答:简单地说,数据结构定义了一组按某些关系结合在一起的数LRD:JFKGDBHLMIECA

组元素。数据类型不仅定义了一组带结构的数据元素,而且还在数据结构的概念:数据之间的内在联系。要了解3种数

其上定义了一组操作。据结构的概念:逻辑结构;物理结构;基本操作。

2.简述线性结构与非线性结构的不同点。例如:栈和队的逻辑结构都是线性的,但她们的基本操

答:线性结构反映结点间的逻辑关系是一对一的,非线性结构

作不同,就是不同的数据结构。

反映结点间的逻辑关系是多对多的。

常见的数据结构的分类:线性关系;集合关系;一对多;

3、分析下面各程序段的时间复杂度

多对多(图);

(1.)for(i=0;i<n;i++)什么事物理结构(应该有印象)。

for(j=0;j<m;j++)

算法设计时要用类PASCAL,类C,不要用C++.

A[i][j]=0;

算法分析的常用方法:事前分析;事后统计。

答:O(m*n)

时间/空间复杂度的概念。空间是算法运行时资源占用情

(2.)x=0;况。

for(i=I;i<n;i++)时间复杂度:最坏,最好,平均。

for(j=l;j<=n-i;j++)

例如:归并排序都是O(n*logn),最好,最怀,平均都

x++;

是一样的

解:因为x++共执行了n-l+n-2+.......+1=

n(n-l)/2,所以执行时间为O(M)插入排序:最好为O(n),最坏为O(n2)

线性表:逻辑关系,各种基本操作,两个有序表的归并。

线性表的顺序存储:线性表的操作在顺序表中的实现。

/'S)=Z亍,")=*』

例如:1。插入与删除和插入的位置与表长有关。

1=1y=3+11=1L2.在一个长为n的表中插入一个元素的平均复杂度,

要有插入位置的概率分布表达式,即给出此表达式,算

平均复杂度。

线性表的链最存储:链表的基本操作:2个有序表的归

并。

4.设有编号为1,2,3,4的四辆列车,顺序进入一个栈例如:1。把链表就地逆置:一个指针P指向当前逆置

式结构的车站,具体写出这四辆列车开出车站的所有可好的一系列节点的最后一个节点,取P的NEXT插入队

能的顺序。头。

刘答:至少有14种。2.三色问题:节点红黄蓝在链表上无序排列,把他

①全进之后再出情况,只有1种:4,3,2,I们按红黄蓝的顺序排好。要求只能从头到尾搜索一遍。

②进3个之后再出的情况,有3种,3,4,2/3,2,4/3,2,1,4设当前指针P,头指针S,S.NEXT为Q,S后接红节点。

③进2个之后再出的情况,有5种,2,4,312,3,4,12,1,3,4若P为红,插入S后。若P为黄,插入Q后。若P为

2,1,4,32,1,3.4

兰,不动。然后P向后移,求下个。

④进1个之后再出的情况,有5种,143,21,3,2,41,3.4,21,

2,3,41,2,4,3注:要了解单链表的插入,删除在什么位置操作。

5:京定三支树的两种遍历序列,分别是:静态链表(数组表示):不能象单链表那样不受限增加

前序遍历序列:D,A,C,E,B,H,F,G,I;中节点。

序遍历序列:D,C,B,E,H,A,G,I,F,循环链表:如果表示队列,用它最好。P指向队尾。好

试画出二叉树B,并简述由任意二叉树B的前序遍历序处:用于优先队列中。

列和中序遍历序列求二叉树B的思想方法。双向链表:单链表中只有P指向当前节点,不能删除P。

解:方法是:由前序先确定root,由中序可确定root因为无法找到P的前驱。而双向链表可以。注意指针变

的左、右子树。然后由其左子树的元素集合和右子树的化情况。

栈:后进先出。基本操作:出入栈,取栈顶。在顺序表合,可看这个节点是否在此树上。看两个节点是否在一

和链表上的实现;出栈序列是否合理?个强联通分量,看他们是否在一棵树上•求KRUSCAL

例如:入栈序列是1,2,,,n,则出栈序列有几种?(即算法(最小生成树集合)。

n个节点的二叉树的个数。因为树的先序是1,2,,,n)。哈夫曼:前缀码。它是加权外部路径长度最小的二叉树。

栈与递归:见我给你寄过去的手写体。它是严格二叉树,无度为1的点。节点个数=2x叶节点

队列:先进现出。链队列,循环队列。-k构造,编码。

例如:1。把从队头开始的第i个元素删除:队列只有扩展:用0,1,2三进制编码:元素个数为奇。N个元

出队入队,不能直接删除。要先将前i-1个出队,入队素K进制:K-1整除N-1。否则增加概率为零的元素。

尾;i出队;i+1以后的出队入队尾。注意11。6节的最佳归并。

2.队列逆置(队头与队尾交互):出队入栈;后出栈树的计数:记结论。

入队。N个操作符或N个括号,为操作符加括号的情况数目。

注意:这些结构的基本操作有什么,不能混。N+2个顶点的凸多边形,他的不同三角剖分的个数。

循环队列:队头指针和队尾指针。记住队空和满的标志。al,a2,„an,ai=l/-l,任意前k个ai之和大于等于0,

见手写版。动态查找:二叉排序树:中序遍历有序,先序无序。给

串:1。KMP算法,求NEXT函数值等。时间:O(n+m)。出先(或后)序的次序,写出此树(因为中序是顺序的,

其中,模式匹配为O(n);预处理为O(m),要会证明己知)。他的插入和删除(删除不一定考)。给定树,求

她们。简略证明见手写版。平均查找长度。

2.求两串的最长公共子串,时间为O(n)是不行查找长度的量级。

的,至少要O(n2)。具体证明估计不会考。平衡二叉树:一定是二叉排序树。树的所有子树都是平

17.数组:存储位置与下标对应。特殊数组(对称,上衡二叉树。反之不成立。若要执行4种旋转,至少7个

三角等)。节点。

三元组,稀疏矩阵(求逆)。计数技术,在设计算法中M阶B树:关键字个数的上下限。N个关键字构成树的

的应用。节点数目层数。

十字链表不考。B+树的概念。键树。

广义表:基本概念,存储结构(二叉链表)。应用不哈希表:解决冲突的方法。只有链地址法可以解决二次

考。聚集。不是同义词不会竞争同一位置。链地址法是顺序

广义表递归算法了解。结构和链结构的完美结合。

二叉树的性质(熟)。查找长度:1。探测次数(包括最后一次比较为空的次

存储结构:二叉链表,三叉链表。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论