计算机及其应用自考数据结构常考知识点

1、数据结构是带有结构的数据元的集合,一般包括三个方面的内容:数据的存储结构,数据的运算,数据的逻辑结构

2、算法一定要有输出,算法不一定要有输入,算法中的每条指定含义必须要明确,算法中的每一条指定的执行次数必须是有限的

3、一个算法的时间耗费的数量级称为该算法的时间复杂度

4、在数据结构中,数据指的是描述客观事物的数、字符以及能输入输出计算机中并被计算机处理的符号的集合。数据是由基本单位数据元素构成的

5、数据的逻辑结构可以分为线性结构和非线性结构

6、执行算法所耗费的时间,即为时间复杂性;执行算法所消耗的存储空间,主要是辅助空间,即空间复杂性 ;算法应易于理解、易于编程,易于调试等,即可读性和可操作性。因此表征算法时间复杂度是执行算法所耗费的时间

7、任何算法都要满足有限性,也就是要在有限的此执行后终止

8、算法的定义。通俗地说,一个算法就是一种解题的方法,严格地说,算法是由若干条指令组成的有穷序列,其中每条指令表示一个或者多个多个操作

9、数据项是具有独立含义的最小标识单位

10、链式存储结构是指逻辑上相邻的元素如果存储在一组不一定连续的存储单元上,并且数据元素间的逻辑关系由附加的指针域表示

11、顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。

12、索引结构和散列结构适用在外存与内存交互结构

13、索引存储:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干索引项组成。索引存储结构是用结点的索引号来确定结点存储地址,其优点是检索速度快,缺点是增加了附加的索引表,会占用较多的存储空间。

14、散列存储:散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了可以用于查找外,还可以用于存储。

15、若节点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为散列存储结构

16、数据的结构。数据元素之间的逻辑(或抽象)的关系,也成为数据的逻辑结构。他是从逻辑关系上描述数据的,与数据元素的存储结构无关,是独立于计算机的。数据的存储结构是数据在计算机中的存储表示(映像),亦称为数据的物理结构。它包括数据元素个关系的表示,是依赖于计算机语言的

17、对于一系列算法,除了考虑算法的正确性之外,最主要是考虑算法的时间复杂度。

18、语句的频度也就是语句执行的次数

19、索引非顺序文件(Indexed NonSequenttail File)主文件按主关键字无序得文件称索引非顺序文件

20、设深度为K的二叉树上只有度为0和度为2的节点,这类二叉树上所含结点总数最少为2k-1个

21、根序遍历:每次都是先变例树的左子树,然后遍历树的右子树,最后遍历根节点,直至遍历完整个树;后序遍历序列的最后一个结点时根节点;中序遍历序列的根节点在中间,其左边是左子树,右边是右子树;

22、栈的特点是先进后出。

23、设二叉树有n个节点,则其深度是无法确定的

24、数组中各元素地址计算公式,对于一维数据,loc(ai)=loc(a1)+(i-1)*L  

25、无向图的最多边是无向完全图:包含n(n-1)/2条边。因为一条边关联两个节点,有向完全图的才有n(n-1)条弧。而无向图边连通至少边数:n-1有向图边连通图至少需要边数:n

26、循环链表的主要优点是从表中任意一系欸但出发都唔那个访问到整个链表

27、一颗二叉树可以度为2,也可以不为2;有物种基本形态:空二叉树,仅有根节点的二叉树,左子树为空的二叉树,右子树为空的二叉树,左右子树均不为空的二叉树

28、已知单链表中有3000个节点,每个节点中存放一个整数,堆排序方法可以用于解决这3000个整数的排序问题且不需要对算法做出大的变动

29、快速排序平均查找长度最小,快速排序是对冒泡排序的一种改进。 他的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后在按此方法对两部分数据分别进行快速排序,整个排序过程可以进行递归进行,以此达到整个数据变成有序序列,平均时间复杂度为O(NlogN),也就是说,一趟快速排序是将的序列中的元素通过适当的位置交换将有关元素一次性地放置在其最终位置上。

30、插入排序属于稳定的排序,适合于数据量小,部分数据有序的情况排序,时间复杂度O(n^2)

31、选择排序:时间复杂度O(n^2)所以用到它的时候数据规模越小越好,好处不额外占用内存空间

32、归并排序是稳定排序,他是一种十分高效的排序,能利用完全二叉树的特性排序一般性能都不会太差,平均时间复杂度为O(nlogn)

33、无向图与其生成树的关系,对于无向图而言,如果无向图G是一个连通图,在对其进行遍历时,一次可以遍历所有顶点,得到的极小连通子图时一颗生成树,树中包含了图中的所有顶点,但是不一定包含所有的边;如果无向图G是一个非连通图,在对其进行遍历时,得到的是森林,这个森林是有图的连通分量的生成树组成的,森林中也不一定包含如中的所有边。因此G‘不一定为G的边通分量

34、散列表的目的是为了快速查找

35、带头节点的单链表head为空的判断条件是头结点的指针域是否为空,即:head->next=null

36、将上万个一组无序并且不相等的正整数序列,存放与顺序存储结构中,采用选择排序方法能够最快地找出其中最大的正整数

37、在排序过程中,关键码比较的次数与记录的初始排序顺序无关的是:直接选择排序和归并排序

38、单链表中添加节点:p->next=s,s->next=q

39、分块查找是将表分成若干块,分块的原则是数据元素的关键字在块与块之间是有序的,而块内元素的关键字是无序的。分块法可以适应动态变化要求

40、二分法查找,也成为折半法,是一种在有序数组中查找特定元素的搜索算法,具体思想如下:首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复第一步操作,如果某一步为空,则表示找不到目标元素,时间复杂度为O(logn)。

41、顺序查找法又称为线性查找法,是一种最简单的查找法。该算法的原理是将数据一个一个地按顺序逐次查找。所以不管数据的顺序是什么样的,都得从头到尾再来遍历一次;优点:在文件查找前不需要做任何处理与排序;缺点:是查找速度慢;当数组中有重复元素时,返回第一个元素的下标;时间复杂度:最坏的情况下时为了找到数据,需做n次比较,时间复杂度为O(n);在平均状况下,假设数据出现的概率相等,则需要做(n+1)/2次的比较;当数据量很大的时候,不适合运用此方法。

42、散列法的复杂度O(1),它采用直接寻址的方式,就是存储记录时,通过散列函数计算出一个散列地址;读取记录时,同样的散列函数计算出地址,然后按照地址访问记录,类似与映射

43、哈夫曼树:路径在一棵树中,一个结点到另一个结点之间的通路叫做路径;路径长度:在一条路径中,每经过一个结点,路径长度加1;结点的权:给每一个结点赋予一个新的数值,被称为这个结点的权;结点的带权路径长度:指的是从根结点到该结点之间的路径长度与该结点的权的乘积;树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作WPL 如:最大的*1,第二*2,第三*3一次类推;在构建哈夫曼树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树根越近。

44、在有向图的邻接表中,从一顶点出发的弧链接在同一链表中,邻接表中结点的个数恰为图中的弧的数目,所以顶点入度之和为弧度和的一倍,若为无向图,同一条边上有啷个结点,分别出现在和它相关的两个顶点的链表中,因此无向图的邻接表中结点个数的边数的2倍。

45、倒排文件能大大提高基于非关键码数据项的查找速度

46、对含有1个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同

47、二叉树的存储有:顺序存储、二叉链表、三叉链表。遍历算法有:先序、中序和后续。所谓先后是针对访问根结点与访问子节点的相对顺序而言的。另外,还有层序遍历。对于后序遍历的非递归算法,用栈实现,用三叉链表是比较好的;

48、排序是指将一个无序序列整理成按值顺序排列的有序序列。排序的重要目的是为了以后对已排序的数据元素进行查找

49、物理结构:包括线性存储和非线性存储其中,线性存储结构有顺序、链接、索引和散列4中结构。非线性存储结构有:树形存储结构、图形存储结构。n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域

50、通常要求同一逻辑结构中的所有数据元素具有相同属性,这意味着数据不仅每个数据元素都一样数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

51、非空的单循环链表L的尾结点P↑满足P↑.next=L;

52、静态查找表与动态查找表二者的根本区别:如果只是查询某个特定的元素是否在查找表中,或者特定元素的属性,则称为静态查找表;如果还要在查找表中插入或者删除一个元素,则成为动态查找表

53、栈是一种先进后出的表,输入序列为1、2、3...n,输入序列为P1,P2,P3,,,,若P1=n,即P2等于n-1....和P的序号的关系为:P的序号与输出的数量的和为N+1,所以Pi的需要为 ,n+1-i

54、索引顺序文件的记录,在逻辑上按关键字顺序排列,但物理上不一定按关键字顺序存储,故需要建立一张指示逻辑记录和物理记录之间--对应关系的索引表

55、连通图是指图中任意两个顶点都存在相同路径。对于6个结点的无向图,至少有5个边才能确保是一个连通图

56、在链式存储结构中,存储数据结构的空间可以是连续的,也可以是不连续的,和数据结点的存储顺序与数据元素之间逻辑关系可以不一致

57、完全二叉树中 右孩子是2n+1 左孩子是2n  逆推(n-1)/2

58、广义表表头的值可取原子或者子表,即head(head((a),(b)))最里层的head分解后的值为(a)即最外层等于head(a),最后结果是a

59、如果根结点成为兄弟结点,而第一颗树的根结点作为二叉树的根节点,并且第一颗树的结点假设为N1,而其左孩子结点即不包含根节点的节点数N1-1

60、循环队列采用的方法是:假设向量SQ->data[maxsize]是一个首位相接的圆环,即SQ->data[0]接在SQ->data[maxsize]之后,我们将这种意义下的向量称为循环向量,并将循环向量中的队列成为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加1操作可描述为:if(sq↑.rear>=maxsize)sq↑.near:=0;else sq↑. rear++;如果利用“模运算”,上述循环意义下的尾指针加1操作,可以更简洁地描述为:sq↑. rear=(sq↑. rear+1) %maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑. front:=(sq↑. front+1) %maxsize。

61、邻接表存储,拓扑排序算法的时间复杂度为O(n+e) 即(顶点和边的和)

62、二分查找要求表元素时排好顺序的,当采用的存储结构不是顺序表,或者顺序表中元素未按键值的次序(递增或者递减)排列时,则不能进行二分查找

63、任何一个带权的无向连通图的最小生成树有一颗或者多棵

64、在线性结构中,线性结构中后继唯一性决定了它的遍历路线只有一条

65、head((a),(b))==取表头第一个元素  tail((a),(b))==b 除了第一个元素外,其他元素组成的广义表

66、朴素的串匹配算法的特点是简单,但是其效率较低,其时间匹配算法的最坏时间是O(m+n)(假设模式串的长度是m,目标串的长度是n)

67、设有两个串p和q,求p在q中首次出现的位置的运算叫模式匹配

68、对于一个长度为n的线性表,假设表中的各结点的查找概率相同,则在查找成功的情况下,平均查找长度为(n+1)/2 如果k不在表中,则需要进行 n+1次比较后才能确定查找失败

69、在二叉树排序树中,其左子树中任何一个结点的关键字一定小于其右子树的各结点的关键字

70、散列函数的作用是压缩待处理的下标范围,待处理的|u|个值减少到m个值,从而降低空间开销(可以快速定位到数据元素,能对一个数据序列的访问过程更加有效)

71、已知无向图G的结点数为n,边数为e,其邻接表表示中的表结点数与表头结点数之和为n+2e

72、若二叉树的一个叶子是某子树的中序遍历序列中的第一个结点,则他必是孩子树的后续遍历中的第一个结点

73、有m个叶子结点(又称外结点)的哈夫曼树,其结点总数是2m-1;

74、VSAM文件既可以在顺序集中进行顺序存取,又可以从最高层的索引出发,进行按钮关键字的随机存取;

75、任何连通图的连通分量只有一个,即其自身;

76、如果一个图中又n条边,则此图中的生成树有n-1条边,所以生成树是图的边数最少的连通图

77、对于一系列算法除了考虑算法的正确性之外,最主要是考虑算法的时间复杂性

78、算法分析的两个主要方面是时间复杂性和空间复杂性

79、算法指的是解决问题的有限运算序列

80、数据结构一般包括逻辑结构、存储结构或者物理结构和数据运算三各方面的内容;

81、通常情况下,把对算法所要求解问题的输入量成为问题的规模,并用一个正整数n来表示。

82、数据结构是带有结构的数据元素的集合,其中的结构是指数据元素之间的相互的关系,即数据的组织形式。

83、数据的存储结构(物理结构)一般可以用顺序存储,链式存储,索引存储及散列存储等四种存储方法表示;

84、数据的同一种逻辑结构,可以对应多种不同的物理结构或存储结构

85、从逻辑上,数据结构被分成了线性结构和非线性结构

86、数据元素之间的逻辑关系成为逻辑结构;

87、在高级程序设计语言中,按值的不同特性,可将数据类型分为原子类型和结构类型两类;

88、常见的时间复杂度按数量级递增排列,依次为常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、…、k次方阶O(nk)、指数阶 O(2n)和阶乘阶O(n!);

89、算法的时间复杂度与实现时采用的程序设计语言无关

90、数据结构指的是数据元素之间的逻辑结构、存储结构及其数据的抽象运算;

91、如何分析算法的时间复杂度?算法的时间复杂度仅与问题规模相关么?

答:加入将算法中基本操作的重复执行次数看成是问题规模72的某个函数f(n),算法的监禁时间复杂度记作:T(n)=O(f(n))。它表示随着问题规模的n的增大,算法执行时间的增长率和f(n)的增长率相同,其中f(n)一般为算法中频度最大的语句频度。在分析算法时,往往对算法的时间复杂度和渐进时间复杂度不予区分,而经常时将渐进时间复杂度T(n)=O(f(n))简称为时间复杂度。由于算法的时间复杂度考虑的只是对于问题规模n的增长率,则在难精确计算基本操作执行次数(或语句频度)的情况下,只需要求出它关于n的增长率或者阶即可。不同的计算机系统执行一次基本操作的时间是千差万别的,不能用一个统一的量来衡量。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数(n)算法的时间量度记为:T(n)=O(f(n))。所以,不能说算法的时间复杂度仅与问题规模相关。

92、什么数据结构的逻辑结构?什么是数据的物理结构?两者之间有什么联系?

答:数据元素之间的逻辑(或抽象)关系,也成为数据的逻辑结构。数据元素及其关系在计算机内存储方式,称为数据的物理结构。无论怎样定义数据结构。都应该将数据的逻辑结构、存储结构及运算这三方面堪称一个整体。同一种逻辑结构,采用不同的存储方法可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,要视具体的应用系统要求而定,而主要考虑的还是运算方便及算法的时间和空间上的要求。

93、学习数据结构的目的是什么?

答:随着计算机应用领域的扩大和软硬件的发展,非数值计算问题显得越来越重要。而数据结构时研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作的一门课程。同时,数据结构时计算机软件和计算机应用专业的核心课程之一,在众多的计算机系统软件和应用软件中都要用到各种各样的数据结构。因此,仅掌握集中计算机语言是难以应付众多复杂的课题,想要有效的使用计算机,还必须学习数据结构的有关知识。 著名的瑞士计算机科学家沃斯教授曾提出:算法+数据结构=程序;由此可见,程序设计的实质是针对实际问题选择一种好的数据结构和设计一个好的算法,而好的算法在很大程度上取决与描述实际问题的数据结构。要设计出一个好的程序,就必须有好的算法,而好的算法必须建立在研究数据的特性及数据之间存在的关系的基础上,这些正是“数据结构”这门课程所需要研究的内容。研究数据结构的目的在于更好的进行程序设计;

94、什么是算法?算法与程序有什么区别?

答:通俗的说,一个算法就是一种解题思路。严格的说,算法是由若干条指令组成有穷序列,其中每条指令表示一个或者多个操作。此外,算法必须满足五个准则:输入、输入、有穷性、确定性和可行性。算法与程序的区别:一个算法可以用自然语言,计算机程序语言,数学语言捉着约定的符号语言来描述,而程序必须依赖于计算机程序语言;

95、递归求解过程中的最小子问题称为递归的终止条件或者递归的出口

96、将一颗树T转换为一棵二叉树,则这棵树二叉树的右子树为空

97、散列存储中,拉链法(链地址法)是处理冲突的方法

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

里昂IT

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值