计算机国二office公共基础知识

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章 数据结构与算法(10-12分)

考点:

1. 算法(****)

2. 数据结构(***)

3. 线性表及其顺序存储结构(**)

4. 栈和队列(*****)

5. 线性链表(**)

6. 树与二叉树(*****)

7. 查找技术(****)

8. 排序技术(***)

1、概念

算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作 2、数据的逻辑结构

● 线性结构(例:一维数组、链表、栈、队列、串、线性表) ● 非线性结构(例:多维数组、广义表、树、图) 3、数据的存储结构(线性表)

● 顺序存储方法:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中

是按逻辑顺序依次存放的

● 链接存储方法:逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的 ● 计算机中有数据进行处理时,数据的存储结构对程序的执行效率有很大的关系

● 一种数据的逻辑结构根据需要可以表示成多种存储结构。数组是数据的逻辑结构,可以用多种存

储结构来表示

● 线性链表:就是指线性表的链式存储结构,简称链表 4、算法的基本特征

● 可行性:针对实际问题而设计的算法,执行后能够得到满意的结果 ● 确定性:算法中的每一个步骤都必须有明确的定义,不允许出现歧义性

● 有穷性:算法必须在有限时间内做完,即必须在执行有限个步骤之后终止,算法程序的运行时间

是有限的

● 拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才

最有效的;而当提供的情报不够时,算法可能无效

5、算法的复杂度

● 时间复杂度:该算法执行的时间耗费,是指执行算法所需要的计算工作量,即算法执行过程中所

需要的基本运算次数

● 空间复杂度:该算法执行时所耗费的存储空间 6、顺序表和链表的比较:

基于空间的考虑:(1)顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。(2)顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的

栈实际也是线性表,只不过是一种特殊的线性表。栈称为“先进后出”

表或“后进先出”表,顺序存储、链式存储

● 栈的计算:求栈中元素的个数:栈底元素—栈顶元素 ● 栈是限定在一端进行插入与删除的线性表,允许插入元素的一端为栈顶,

允许删除元素的一端为栈底,栈顶元素总是最后被插入的元素,也是最

栈顶 入栈

出栈

先被删除的元素;栈底元素则总是最先被插入而最后被删除的元素

● 队列也是一种运算受限的线性表,是一种“先进先出”,“后进

后出”的线性表, 顺序存储、链式存储

● 队列的计算:求队列中元素的个数:当rear>front 时, rear

—front 当rear

● 循环队列仍然是顺序存储结构,是队列常采用的形式

● 队列是一种线性表,它允许在一端进行插入,在另一端进行删

1、树

● 节点:树中的每一个点叫做节点,分为根节点(0或1个)、父节点、子节点

● 度:一个结点拥有的子树数称为该结点的度。一棵树的度是指该树中结点的最大度数。度为1的

点节叫做n1,度为2的节点叫做n2

● 深度:树中结点的最大层数称为树的高度或深度

2、二叉树

● 二叉树:由左树和右树组成,二叉树的度<=2 ,当度

为0时叫做空树 ● 具有3

个结点的二叉树有5种形态

● 满二叉树:指除最后一层外,每一层上的所有结点都

有两个子结点的二叉树 ● 完全二叉树:除最后一层外,每一层上的结点数均达 到最大值,在最后一层上只缺少右边的若

干结点

● 二叉树的性质:

性质1:二叉树第k 层上的结点数目最多为2k-1(k>=1)

性质2:深度为m 的二叉树至多有2m

-1个结点(k>=1)

性质3:度为2的结点数为n2,度为0的节点叫做n0(度为0的节点比度为2的节点多一个),整个二叉树节点个数:n=n0+n1+n2

性质4:具有n 个结点的完全二叉树的深度至少为[log 2n]+1,其中

[log2n]表示取log 2n 的整数部分

● 二叉树的遍历:

遍历:是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问 (1)前序遍历:

访问根结点——左子树——右子树

(2)中序遍历:

左子树——访问根结点——右子树 (3)后序遍历:

左子树——右子树——访问根结点 例:前序:ABDEGCF

中序:DBGEACF 入队

Rear :队尾

front :队头

后序:DGEBFCA

●冒泡排序:是最简单的一种交换类排序法。在最坏的情况下,对长度为n的线性表排序,冒泡排

序需要比较的次数为n(n-1)/2,其时间复杂度为O(n2)

●直接选择排序:最坏情况要比较的次数为O(n2),其时间复杂度为O(n2)

●直接插入排序:最坏的情况下,时间复杂度为O(n2)

●快速排序:平均时间为O(nlog2n),最坏情况下,时间效率为O(n2)

●堆排序:最坏情况下,时间复杂度为O(nlog2n)

各种内部排序方法的比较

●顺序查找:即适用顺序存储结构,又适用链式存储结构。对长度为n的线性表进行顺序查找,在

最坏情况下需要比较n次

●二分查找:要求线性表是有序表,另外,二分查找只适用顺序存储结构,在链式存储结构上无法

实现二分查找

●二分法查找只适用于顺序存储的有序表,在最坏情况下,二分查找需要比较log2n次

●在平均情况下,在顺序存储的线性表中查询一个元素,需要一半的元素,在最坏情况下,则需要

比较线性表中所有的元素。

相关文档
最新文档