![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 68
旷工锁
这个作者很懒,什么都没留下…
展开
-
常见的排序算法
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。原创 2022-10-30 14:44:47 · 242 阅读 · 0 评论 -
c++数据结构:散列表(哈希)
访问的话可以通过下标来访问数据。设关键码为(25 21 39 9 23 11) H(k)=k%7由于H(k)=k%7 ,所以地址编号为0-6例如:上面的H(25 )H(39) H(11)具有相同的函数值。原创 2022-10-29 12:34:44 · 1732 阅读 · 0 评论 -
C++数据结构:线性表查找
先确定待查找记录所在的范围,然后逐步缩小范围直到找不到或找到该记录为止。从数据的第一个元素或最后一个元素开始查找,直到遍历完整个数据。log2(n)+1 或log2(n+1)向上取整。以索引顺序表示静态查找表,则使用分块查找来表现。除了数据表之外,还需要建立一个索引表。存储方式为:顺序存储和链式存储都可以。原创 2022-10-28 20:15:23 · 842 阅读 · 0 评论 -
c++数据结构:平衡二叉树(概念)
平衡二叉树又称AVL树。平衡二叉树的性质:平衡因子(BF):为该节点的左子树的深度减去它的右子树的深度 对于一个有N个节点的平衡二叉树,其高度保持在O(log2 N),ASL也保持在O(loh2 N) 失衡时的节点调整:原则:平衡二叉树的构建过程:{16,3,7,11,9,26,18,14,15}原创 2022-10-26 18:15:43 · 391 阅读 · 0 评论 -
C++数据结构:二叉排序树
按照以上思路写的代码,可以用查找和判段左右孩子函数来精简该代码。原创 2022-10-26 15:47:29 · 1145 阅读 · 0 评论 -
c++数据结构:拓扑排序和关键路径(概念)
可以利用又向无环图对相同子式进行共享,节省存储空间有向无环图也是描述一项工程或系统的进行过程的有效工具,通常把计划、施工、生产 、程序流程等当作一个工程。原创 2022-10-24 13:44:53 · 471 阅读 · 0 评论 -
c++数据结构:最小生成树
设N=(V,E)是一个连通网,U是顶点集V的一个非空子集。若边(u,v)是一条具有最小权值的边,其中u∈U,v∈V-U,则必存在一颗包含边(u,v)的最小生成树。原创 2022-10-22 08:51:23 · 1110 阅读 · 0 评论 -
c++数据结构:图的遍历
设图中的所有顶点都未被访问,则深度优先遍历搜索可从图中的某个顶点P出发,访问该顶点,然后依次从v的未访问的邻接点出发深度优先遍历图,直到所有和P有路径相通的节点都被访问。邻接矩阵的深度优先遍历的时间复杂度:O(n^2)邻接表的深度优先遍历的时间复杂度:O(n+e)原创 2022-10-21 13:11:44 · 2048 阅读 · 0 评论 -
c++数据结构:图(十字链表和邻接多重表)
十字链表:是有向图的一种链式存储结构,可以看作是有向图的邻接表和逆邻接表的一种结合体。由于有向的图,不易查找该节点的度,十字链表可以解决这个问题。原创 2022-10-20 16:35:53 · 547 阅读 · 0 评论 -
c++数据结构:图(邻接表)
想更容易的找到入度的话,可以构建逆邻接表:(指向反转)邻接表是图的一种链式结构。原创 2022-10-19 17:49:23 · 2350 阅读 · 0 评论 -
c++数据结构:图(邻接矩阵)
有n个顶点,创建一个n*n的矩阵,矩阵的每一行对应每个顶点的关系,当两点有弧时,对应的点为1,没有的话则为0。无向图的度:就是该行所在的 1的个数。有向图的度:改行和该列所含1的个数。把无向网代码最后一行删掉就行。把无向图代码最后一行删掉就行。原创 2022-10-19 14:57:47 · 1342 阅读 · 0 评论 -
c++数据结构:图(基本概念)
在图形结构中,节点之间的关系可以是任意的,图中任意两个元素之间都有可能相关。: 顶点a1邻接到顶点a2,顶点a2邻接自顶点a1,图是一种较线性表和树更为复杂的数据结构。一个连通图的生成树是一个极小连通子图。,边(v1,v2)依附于v1和v2。(v1,v2),v1和v2互为。顶点:图中的数据元素。原创 2022-10-19 09:21:34 · 867 阅读 · 0 评论 -
c++数据结构:树(概念三)赫夫曼树
其中在n个节点中WPL最小的二叉树称为最优二叉树或赫夫曼树。原创 2022-10-18 16:52:12 · 970 阅读 · 0 评论 -
c++数据结构:树(概念二)树和森林
把每个节点的孩子列成节点存储成一个单链表,所以 n个节点就有n个链表;如果是叶子节点,那么这个孩子单链表为空,然后n个单链表的头指针又存储在一个顺序表中。又称为二叉树表示法,以二叉链表作为数的存储结构,链表中的两个链域分别指向该节点的第一个节点和下一个兄弟节点。树和二叉树的节点的结构是相似的,但指针的表示不同,所树和二叉树之间是可以相互转化的。原创 2022-10-17 16:01:08 · 850 阅读 · 0 评论 -
c++数据结构:树(概念一)
如果某个节点的左孩子为空,将空的左孩子指针域改为指向其前驱,如果某个节点的右孩子为空,将空的右孩子指针域改为其后继,这种指向的指针称为。二叉树:节点至多有两颗子树(不存在度大于2的节点),二叉树的子树有左右之分,次序不能颠倒,二叉树也可以为空树。森林是m棵互不相交的树的集合,对树中每一个节点而言,其子树的集合为森林。以下列举:前序遍历的示意图,中序和后序的类似就不列举了。深度为k且只有k个节点的单支树需要2^k-1的一维数组。用一个数组进行存储,不存在的节点置为0。在二叉树的结点上加上线索的二叉树。原创 2022-10-16 14:51:37 · 1443 阅读 · 0 评论 -
c++数据结构:字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中中表示文本的数据类型。字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。原创 2022-10-14 17:02:55 · 404 阅读 · 0 评论 -
c++数据结构:广义表
union 共用体,因为同一时间此节点不是原子节点就是子表节点,当表示原子节点时,就使用 atom 变量;反之则使用 ptr 结构体。可以理解为树形结构:节点可以为两种情况(原子和子表)在原子中,增加了tp,来记录下一个元素节点。计算方式为:广义表展开后括号的重数。原创 2022-10-14 10:44:48 · 908 阅读 · 0 评论 -
c++数据结构:队列
队列是一种先进先出(FIFO)的线性表,只允许在表的一端进行插入、另一端进行删除。 数据类型定义如下: 队列的总体功能的实现:queue.h文件 queue.cpp文件:循环队列:概念可看以下视频:3.6 循环队列_哔哩哔哩_bilibili 将 队列 存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。为了区别这两种情况,规定循环队列最多只能有MaxSize原创 2022-10-12 15:16:23 · 1411 阅读 · 0 评论 -
c++数据结构 栈
链栈:push的实现: pop的实现:原创 2022-06-05 22:47:29 · 84 阅读 · 0 评论 -
c++数据结构:链表
用一组任意的存储单元存储线性表的数据元素(这些存储单元可以是连续的,也可以是不连续的)原创 2022-10-13 16:46:23 · 5754 阅读 · 1 评论 -
c++数据结构:数组和向量
A[i,j] 每个元素的长度为3,i的范围为1-8 j的范围为1-10,首地址为G。c[0]代表的是以c[0][0]为首地址的一维数组(将数组c摊开)一般用二维数组来存储矩阵元。在数据元素的非空有限集中。计算A[5,8]的地址。原创 2022-10-10 16:40:27 · 1760 阅读 · 0 评论