• 回答数

    3

  • 浏览数

    156

Elena小妞仔
首页 > 自考本科 > 自考数据结构知识点汇总高中

3个回答 默认排序
  • 默认排序
  • 按时间排序

二哥不二1993

已采纳

队列(Queue)是一种运算受限的线性表 插入在表的一端进行 而删除在表的另一端进行 允许删除的一端称为队头(front) 允许插入的一端称为队尾(rear) 队列的操作原则是先进先出的 又称作FIFO表(First In First Out) 队列也有顺序存储和链式存储两种存储结构

队列的基本运算有六种

·置空队 InitQueue(Q)

·判队空 QueueEmpty(Q)

·判队满 QueueFull(Q)

·入队 EnQueue(Q x)

·出队 DeQueue(Q)

·取队头元素 QueueFront(Q)

顺序队列的 假上溢 现象 由于头尾指针不断前移 超出向量空间 这时整个向量空间及队列是空的却产生了 上溢 现象

为了克服 假上溢 现象引入循环向量的概念 是把向量空间形成一个头尾相接的环形 这时队列称循环队列

判定循环队列是空还是满 方法有三种

·一种是另设一个布尔变量来判断

·第二种是少用一个元素空间 入队时先测试((rear+ )%m = front)? 满 空

·第三种就是用一个计数器记录队列中的元素的总数

队列的链式存储结构称为链队列 一个链队列就是一个操作受限的单链表 为了便于在表尾进行插入(入队)的操作 在表尾增加一个尾指针 一个链队列就由一个头指针和一个尾指针唯一地确定 链队列不存在队满和上溢的问题 在链队列的出队算法中 要注意当原队中只有一个结点时 出队后要同进修改头尾指针并使队列变空

296 评论

我爱吃土豆儿

在计算机考研专业基础课统考科目中,一共考查数据结构、操作系统、计算机组成原理、计算机网络四门课程,满分为150分,其中数据结构占45分。一、考查目标 (1)理解数据结构的基本概念,掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。 (2)掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。 (3)能够选择合适的数据结构和方法进行问题求解。二、知识点解析1.线性表 线性表是一种最简单的数据结构,在线性表方面,主要考查线性表的定义和基本操作、线性表的实现。在线性表实现方面,要掌握的是线性表的存储结构,包括顺序存储结构和链式存储结构,特别是链式存储结构,是考查的重点。另外,还要掌握线性表的基本应用。2.栈、队列和数组 栈和队列是两种特殊的线性表,在这方面,要求我们掌握栈和队列的基本概念,以及他们之间的区别。对于栈和队列的存储结构(包括顺序存储结构、链式存储结构)要有较深的理解,对于栈和队列的应用,例如,排队问题、子程序调用问题、表达式问题等,要搞清楚。 一维数组属于线性表范畴,但多维数组不属于线性表。在这方面,主要掌握数组的存储结构,例如按行优先、按列优先等,某个元素存在的地址是什么。对于特殊矩阵(二维数组)的压缩存储原理也要搞清楚。3、树与二叉树 二叉树和树是两种不同的概念,这一点是必须要搞清楚的。在这个部分,我们要掌握树的定义、二叉树的定义及主要特征(特殊的二叉树、二叉树的性质)。在二叉树的顺序存储结构和链式存储结构方面,特别是链式存储结构,因为很多应用都是建立在链式存储基础上,例如,二叉树的遍历(前序遍历、中序遍历、后序遍历)就是一种典型的应用。 在特殊的二叉树中,完全二叉树的概念是必须要搞清楚的,其次,线索二叉树的基本概念和构造、二叉排序树、平衡二叉树的基本概念和应用,特别是二叉排序树的基本性质和特点要能很好地理解。 多棵独立的树就组成了森林,树的存储结构和遍历、森林的遍历、树和二叉树的转换、森林和二叉树的转换等知识,也要有了了解。 最后就是树的应用,通常会作为综合应用类试题出现,包括等价类问题、哈夫曼(Huffman)树和哈夫曼编码等。 记得采纳啊

99 评论

bismarck66

线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。是随机存取的顺序存储结构。顺序存储指内存地址是一块的,随机存取指访问时可以按下标随机访问,存储和存取是不一样的。

用一组任意的存储单元来依次存放线性表的结点,这组存储单元即可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。链表中结点的逻辑次序和物理次序不一定相同。

队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。先进先出。

串(String)是零个或多个字符组成的有限序列。长度为零的串称为空串(Empty String),它不包含任何字符。通常将仅由一个或多个空格组成的串称为空白串(Blank String) 注意:空串和空白串的不同,例如“ ”和“”分别表示长度为1的空白串和长度为0的空串。

串的表示和实现

数组和广义表可看成是一种特殊的线性表,其特殊在于: 表中的元素本身也是一种线性表。内存连续。根据下标在O(1)时间读/写任何元素。 二维数组,多维数组,广义表,树,图都属于非线性结构

数组 数组的顺序存储:行优先顺序;列优先顺序。数组中的任一元素可以在相同的时间内存取,即顺序存储的数组是一个随机存取结构。

关联数组(Associative Array),又称映射(Map)、字典( Dictionary)是一个抽象的数据结构,它包含着类似于(键,值)的有序对。 不是线性表。

广义表 广义表(Lists,又称列表)是线性表的推广。广义表是n(n≥0)个元素a1,a2,a3,…,an的有限序列,其中ai或者是原子项,或者是一个广义表。若广义表LS(n>=1)非空,则a1是LS的表头,其余元素组成的表(a2,…an)称为LS的表尾。广义表的元素可以是广义表,也可以是原子,广义表的元素也可以为空。表尾是指除去表头后剩下的元素组成的表,表头可以为表或单元素值。所以表尾不可以是单个元素值。

三个结论

考点

一种非线性结构。树是递归结构,在树的定义中又用到了树的概念。

基本术语 1.树结点:包含一个数据元素及若干指向子树的分支; 2.孩子结点:结点的子树的根称为该结点的孩子; 3.双亲结点:B结点是A结点的孩子,则A结点是B结点的双亲; 4.兄弟结点:同一双亲的孩子结点; 5.堂兄结点:同一层上结点; 6.结点层次:根结点的层定义为1;根的孩子为第二层结点,依此类推; 7.树的高(深)度:树中最大的结点层 8.结点的度:结点子树的个数,就是有几个孩子 9.树的度: 树中最大的结点度。 10.叶子结点:也叫终端结点,是度为0的结点; 11.分枝结点:度不为0的结点(非终端结点); 12.森林:互不相交的树集合; 13.有序树:子树有序的树,如:家族树; 14.无序树:不考虑子树的顺序;

二叉树 二叉树可以为空。二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要进行区分,说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。 注意区分: 二叉树、二叉查找树/二叉排序树/二叉搜索树、二叉平衡(查找)树

二叉树遍历 先序遍历:根左右 中序遍历:左根右 后序遍历:左右根 层次遍历:一维数组存储二叉树,总是以层次遍历的顺序存储结点。层次遍历应该借助队列。

二叉树性质 1.在二叉树的第 i 层上至多有2的i次幂-1个结点 2.深度为 k 的二叉树上至多含 2的k次幂-1 个结点(k≥1) 3.树与转换后的二叉树的关系:转换后的二叉树的先序对应树的先序遍历;转换后的二叉树的中序对应树的后序遍历

一些概念 1.路径:从一个祖先结点到子孙结点之间的分支构成这两个结点间的路径; 2.路径长度:路径上的分支数目称为路径长度; 3.树的路径长度:从根到每个结点的路径长度之和。 4.结点的权:根据应用的需要可以给树的结点赋权值; 5.结点的带权路径长度:从根到该结点的路径长度与该结点权的乘积; 6.树的带权路径长度=树中所有叶子结点的带权路径之和;通常记作 WPL=∑wi×li 7.哈夫曼树:假设有n个权值(w1, w2, … , wn),构造有n个叶子结点的二叉树,每个叶子结点有一个 wi作为它的权值。则带权路径长度最小的二叉树称为哈夫曼树。最优二叉树。

图搜索->形成搜索树 1.穷举法 2.贪心法。多步决策,每步选择使得构成一个问题的可能解,同时满足目标函数 3.回溯法,根据题意,选取度量标准,然后将可能的选择方法按度量标准所要求顺序排好,每次处理一个量,得到该意义下的最优解的分解处理

无向图 1.回路或环:第一个顶点和最后一个顶点相同的路径。 2.简单回路或简单环:除第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路 3.连通:顶点v至v’ 之间有路径存在 4.连通图:无向图图 G 的任意两点之间都是连通的,则称G是连通图。 5.连通分量:极大连通子图,子图中包含的顶点个数极大 6.所有顶点度的和必须为偶数

有向图 1.回路或环:第一个顶点和最后一个顶点相同的路径。 2.简单回路或简单环:除第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路。 3.连通:顶点v至v’之间有路径存在 4.强连通图:有向图G的任意两点之间都是连通的,则称G是强连通图。各个顶点间均可达。 5.强连通分量:极大连通子图 6.有向图顶点的度是顶点的入度与出度之和。邻接矩阵中第V行中的1的个数是V的出度 7.生成树:极小连通子图。包含图的所有n个结点,但只含图的n-1条边。在生成树中添加一条边之后,必定会形成回路或环。 8.完全图:有 n(n-1)/2 条边的无向图。其中n是结点个数。必定是连通图。 9.有向完全图:有n(n-1)条边的有向图。其中n是结点个数。每两个顶点之间都有两条方向相反的边连接的图。 10.一个无向图 G=(V,E) 是连通的,那么边的数目大于等于顶点的数目减一:|E|>=|V|-1,而反之不成立。如果 G=(V,E) 是有向图,那么它是强连通图的必要条件是边的数目大于等于顶点的数目:|E|>=|V|,而反之不成立。没有回路的无向图是连通的当且仅当它是树,即等价于:|E|=|V|-1。

图的邻接矩阵和邻接表

1.邻接矩阵和加权邻接矩阵

深度优先搜索利用栈 深度优先遍历类似于树的先序遍历,是树的先序遍历的推广

广度优先遍历 图的广度优先遍历就类似于树的层序遍历

每次遍历一个连通图将图的边分成遍历所经过的边和没有经过的边两部分,将遍历经过的边同图的顶点构成一个子图,该子图称为生成树。因此有DFS生成树和BFS生成树。

生成树是连通图的极小子图,有n个顶点的连通图的生成树必定有n-1条边,在生成树中任意增加一条边,必定产生回路。若砍去它的一条边,就会把生成树变成非连通子图

最小生成树:生成树中边的权值(代价)之和最小的树。最小生成树问题是构造连通网的最小代价生成树。

Kruskal算法 :令最小生成树集合T初始状态为空,在有n个顶点的图中选取权值最小的边并从图中删去,若该边加到T中有回路则丢弃,否则留在T中;依次类推,知道T中有n-1条边为止

Prim算法: 它的基本思想是以顶点为主导地位,从起始顶点出发,通过选择当前可用的最小权值边把顶点加入到生成树当中来: 1.从连通网络N={V,E}中的某一顶点U0出发,选择与它关联的具有最小权值的边(U0,V),将其顶点加入到生成树的顶点集合U中。 2.以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(U,V),把它的顶点加入到集合U中。如此继续下去,直到网络中的所有顶点都加入到生成树顶点集合U中为止。

Prim算法,Kruskal算法和Dijkstra算法都属于贪心算法

Dijkstra算法适用于边权值为正的情况,如果边权值为负数就才用另一种最短路算法Bellman-Ford算法。该算法是指从单个源点到各个结点的最短路,该算法适用于有向图和无向图。复杂度O(n^2) Dijkstra算法图文详解

若从一个连通图中删去任何一个顶点及其相关联的边,它仍为一个连通图的话,则该连通图被称为 重(双)连通图。 若连通图中的某个顶点和其相关联的边被删去之后,该连通图被分割成两个或两个以上的连通分量,则称此顶点为 关节点。

没有关节点的连通图称为双连通图 1.生成树的根结点,有两个或两个以上的分支,则此顶点(生成树的根)必为关节点; 2.对生成树上的任意一个非叶“顶点”,若其某棵子树中的所有“顶点”没有和其祖先相通的回边,则该“顶点”必为关节点

拓扑排序。在用邻接表表示图时,对有n个顶点和e条弧的有向图而言时间复杂度为O(n+e)。一个有向图能被拓扑排序的充要条件就是它是一个有向无环图。

AOV网(Activity On Vertex):用顶点表示活动,边表示活动的优先关系的有向图称为AOV网。AOV网中不允许有回路,这意味着某项活动以自己为先决条件。

拓扑有序序列:把AOV网络中各顶点按照它们相互之间的优先关系排列一个线性序列的过程。若vi是vj前驱,则vi一定在vj之前;对于没有优先关系的点,顺序任意。

拓扑排序:对AOV网络中顶点构造拓扑有序序列的过程。方法:

采用 深度优先搜索 或者 拓扑排序 算法可以判断出一个有向图中是否有环(回路)。 深度优先搜索只要在其中记录下搜索的节点数n,当n大于图中节点数时退出,并可以得出有回路。若有回路,则拓扑排序访问不到图中所有的节点,所以也可以得出回路。广度优先搜索过程中如果访问到一个已经访问过的节点,可能是多个节点指向这个节点,不一定是存在环。

拓扑算法描述 :

AOE网:带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动持续时间。在工程上常用来表示工程进度计划。

常用哈希函数 1.直接定址法。 2.数字分析法。 3.平方取中法。 4.折叠法。 5.除留余数法。 6.随机数法。

冲突解决 1.开放定址法:当发生冲突时,形成一个探查序列,沿此序列逐个地址探查,知道找到一个空位置,将发生冲突的记录放到该地址中。即Hi=(H(key)+di) % m,i=1,2,……k(k<=m-1),H(key)哈希函数,m哈希表长,di增量序列。

2.链地址法:将所有关键字为同义词的记录存储在一个单链表中,并用一维数组存放头指针。

3.设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到Hash表中需要做n (n-1)/2次线性探测。如果使用二次探测再散列法将这n个关键字存入哈希表,至少要进行n (n+1)/2次探测 4.Hash查找效率:装填因子=表中记录数/表容量 5.开哈希表——链地址法;闭哈希表——开放地址法

B树的查找 时间复杂度O(logn)

B树的插入

例:用1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15构建5阶B树

因为构建5阶的B树,所以每个节点的关键字个数范围为[2,4]

插入11时,该节点的关键字个数超出范围,进行分裂

之后直接插入4,8,13

当插入10时,节点关键字个数再次超出范围

将子节点分裂

直接插入5,17,9,16,插入20

关键字个数超出范围,进行分裂

继续插入3

关键字个数超出范围,进行分裂

继续插入15

关键个数超出范围,进行分裂

这时候根节点关键字个数也超出范围,继续分裂

B+的优点 1.单一节点存储更多的元素,使得查询的IO次数更少。 2.所有查询都要查询叶到叶子节点,查询更加稳定 3.所有叶子节点形成有序链表,便于范围查询。

180 评论

相关问答

  • 数据结构导论自考知识点总结高中

    考试时算法设计题基本来讲一般都在线性表和二叉树,这两部分搞清楚就没问题了,有时也会涉及排序,所以基本的要会。教材上的算法不要求都要会写,掌握住算法的思想就可以了

    二x小b姐 4人参与回答 2024-05-20
  • 数据结构导论自考知识点汇总

    数据结构导论的几点心得和建议我想在自考将要来临之际,为各位正在忙碌复习当中的自 考学友们,提供一点复习思路,以便能顺利通过10月份的考试。下面就是我的一点复

    正版TJ状妈 4人参与回答 2024-05-19
  • 数据结构自考知识点归纳汇总

    第六章 树 树是n个结点的有限集合,非空时必须满足:只有一个称为根的结点;其余结点形成m个不相交的子集,并称根的子树。 根是开始结点;结点的子树数称度;度

    闪灯背后 3人参与回答 2024-05-20
  • 数据结构自考知识点总结高中

    线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。是随机存取的顺序存储结构。顺序存储指内存地址是一块的,随机存取指访问时可以按下标随机访问,存储和存取是

    吃喝玩乐nnn 1人参与回答 2024-05-20
  • 数据结构自考知识点汇总

    队列(Queue)是一种运算受限的线性表 插入在表的一端进行 而删除在表的另一端进行 允许删除的一端称为队头(front) 允许插入的一端称为队尾(rear)

    花花的老妈 3人参与回答 2024-05-20