![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 95
边懵懵'.ㅅ'
有问题可私信
展开
-
数据结构C++——动态规划
动态规划算法与贪婪算法与贪婪算法动态规划递归方程。原创 2024-07-24 21:35:53 · 962 阅读 · 0 评论 -
数据结构C++——分而治之算法
空间复杂性:递归栈空间: O(n).原创 2024-07-24 21:09:26 · 662 阅读 · 0 评论 -
数据结构C++——贪婪算法
predecessor[i]=sourceVertex,//邻接于sourceVertex的顶点。一个复杂的工程通常可以分解成一组简单任务(活动)的集合,完成这些简单任务意味着整个工程的完成。对于给定的源顶点sourceVertex ,需找出从它到图中其他任意顶点(称为目的)的。而且,若j没有在表newReachableVertices中,则将。注:数据结构中的贪心算法只是大概讲思路,具体的实现等细节,请参考。predecessor[i]>0的顶点。对于所有邻接于顶点i的顶点j,,其可能取值为0或1。原创 2024-07-24 20:54:00 · 850 阅读 · 0 评论 -
数据结构C++——图
图G = (V,E)V 是顶点集. E是边集.顶点也叫作节点( nodes)和点(points).E中的每一条边连接V中两个不同的顶点。边也叫作弧(arcs)或连线(lines)。可以用(i,j)来表示一条边,其中i和j是E所连接的两个顶点。无向边(undirected edge): (i,j)和(j,i)是一样的。有向边(directed edge):(i,j)和(j,i)是不同的无向图(Undirected graph) :图中所有的边都是无向边 .有向图。原创 2024-07-24 20:15:20 · 756 阅读 · 0 评论 -
数据结构C++——搜索树(2) 平衡搜索树
DEF.AVL树:一种平衡树空二叉树是AVL树如果T是一颗非空的二叉树,TLTRT_L , T_RTLTR分别是其左、右子树,当T满足下列条件时,T是一颗AVL树:TLTRT_L , T_RTLTR是AVL树∣hL−hR∣≤1∣hL−hR∣≤1,h代表子树高度AVL搜索树平衡二叉搜索树、平衡二叉排序树既是二叉搜索树,又是AVL树带索引的AVL搜索既是带索引的二叉搜索树,又是AVL树。原创 2024-07-24 16:16:16 · 749 阅读 · 0 评论 -
数据结构C++——搜索树(1) 二叉搜索树
搜索树适合于描述字典的树型结构比跳表和散列表有更好、或类似的性能特别对于顺序访问或按排名访问,散列表实现时间性能差,使用搜索树实现会有更好的时间性能可能为空的二叉树一颗非空的二叉搜索树满足特征:每个元素都有一个关键字,且唯一根节点左子树的关键字小于根节点的关键字根节点右子树的关键字大于根节点的关键字根节点的左右子树也是二叉搜索树即:任何节点左子树的关键字小于该节点的关键字,右子树的关键字大于该节点的关键字二叉搜索树——二叉排序树有重复值的二叉搜索树任何节点左子树的关键字。原创 2024-07-24 14:31:46 · 633 阅读 · 0 评论 -
数据结构C++——优先队列
优先级队列0个或多个元素的集合每个元素都有一个优先级或值。与FIFO结构的队列不同,优先级队列中元素出队列的顺序由元素的优先级决定。从优先级队列中删除元素是根据优先级高或低的次序,而不是元素进入队列的次序.优先级队列中的元素可以有相同的优先级查找一个元素(top)插入一个新元素(push)删除一个元素(pop)两种最小优先级队列:“查找/删除” 操作用来“查找/删除”优先级最小的元素最大优先级队列:“查找/删除”操作用来“查找/删除”优先级最大的元素。原创 2024-07-23 20:22:16 · 955 阅读 · 0 评论 -
数据结构C++——二叉树和树
设完全二叉树中一元素的序号为i, 1≤i≤n。,存在两个不同的二叉树,经过中序遍历都能得到这个结果。但实际上,这两颗二叉树想要实际表达的算式并不相同。与我们希望得到的最为接近。(复制、删除、输出等)。:按照树的层级,从上到下、从左到右依次遍历。:可以看作是缺少了部分元素的完全二叉树。设二叉树中元素数目为n。(前缀和后缀表达式中不会存在歧义)的次序访问树中元素,在同一层中,比如:家庭关系、公司组织……在二叉树的遍历中,每个元素。得到的表达式分别称为其的。树(tree)t是一个。实现,层次遍历通常借助。原创 2024-07-23 18:31:57 · 1066 阅读 · 0 评论 -
数据结构C++——字典、跳表和散列
线性表: (p0, p1, p2, …, pn-1),表示,关键字从左到右。i 级链所包含的数对是i-1级链所有数对的子集。映射到散列表/哈希表(hash table)中的。0级链表: n 个数对(元素/记录)删除数对erase:类似于链表元素的删除。从最高级链表开始,在每一级链中搜索,遇到。多重字典:两个或多个数对有相同的关键字。个数对,散列表中的桶用一个链表来配置。插入insert:类似于链表的插入。——> 数对p在散列表中的。(元素/记录)所组成的集合。1级链表:½ n 个数对。原创 2024-07-23 17:03:30 · 691 阅读 · 0 评论 -
数据结构C++——队列
队列(queue)是一个线性表,其插入和删除操作分别在表的不同端进行。添加新元素的那一端被称为队尾删除元素的那一端被成为队首队列是一个先进先出( first-in-first-out, FIFO)的线性表。原创 2024-07-23 15:47:42 · 672 阅读 · 0 评论 -
数据结构C++——栈
DEF.栈(stack)是一个线性表,其插入(也称为添加)和删除操作都在表的同一端进行。其中允许插入和删除的一端被称为栈顶(top)另一端被称为栈底(bottom)栈是一个后进先出( LIFO (Last-In, First-Out) )表。原创 2024-07-22 21:03:53 · 848 阅读 · 0 评论 -
数据结构C++——矩阵【详】
m x n 矩阵:m行和n列的表M(i,j):矩阵M 中第i 行、第j 列的元素转置矩阵加矩阵乘使用二维数组描述矩阵:mapiji−1∗nj−1mapiji−1∗nj−1数组的0行和0列不用。原创 2024-07-22 19:51:38 · 1157 阅读 · 0 评论 -
数据结构C++—— 线性表与矩阵
线性表(linear list):它的每一个实例都是元素的有序e0e1en−1e0e1en−1,其中n 是有穷自然数。线性表 の 常见操作创建线性表撤销线性表判断是否为空确定长度根据索引查找元素根据元素确定索引根据索引插入、删除元素按某种顺序打印线性表元素……MijM(i,j)Mij:矩阵M中第i行,第j列的元素矩阵相加矩阵相乘矩阵转置。原创 2024-03-02 20:21:06 · 886 阅读 · 0 评论 -
数据结构C++——引言 & 时空复杂度
由此可见,当需要分析空间复杂性时,应该 (1) 确定实例特征;每次递归需要:a(4)、n(4)、返回地址(4) (字节),但可以确定某些部分的空间需求,这些部分依赖于所解决问题。共嵌套调用n+1次(从rSum(n)->rSum(0))n-1=(n-1)*n/2。——描述大型实例特征下,时间复杂性和空间复杂性的具体表现。设f(n)表示程序的时/空复杂性,一般为若干项之和。a,x,n,0,-1需要空间与n无关;交换次数:最好:0;最坏:(n-1)*n/2。移动次数: 3(n-1)原创 2024-02-27 21:05:07 · 842 阅读 · 0 评论