树的遍历之先序遍历二叉树 1.遍历简介:树作为非线性数据结构,在我们取出数据时就需要设计遍历,所谓遍历,就是按照一定的规则性,将数据结构中的所有数据全部依次访问,而二叉树本身并不具有天然的全局次序,故为实现遍历,需通过在各节点与其孩子之间约定某种局部次序,间接地定义某种全局次序,这便是我们常规定的先序,中序,后续遍历。 树 2022年05月01日 171 点赞 0 评论 135983 浏览
常用的双指针技巧 什么是双指针?其实很好理解,双指针是一种思想,一种技巧或一种方法,并不是什么特别具体的算法,在二分查找等算法中经常用到这个技巧。具体就是用两个变量动态存储两个或多个结点,来方便我们进行一些操作。通常用在线性的数据结构中,比如链表和数组,有时候也会用在图算法中。 其他算法 2022年04月22日 123 点赞 0 评论 76831 浏览
什么是拓扑排序? 拓扑排序主要解决的问题是给一个图的所有节点排序。一、什么是拓扑排序在图论中,拓扑排序(TopologicalSorting)是一个有向无环图(DAG,DirectedAcyclicGraph)的所有顶点的线性序列。且该序列必须满足下面两个条件:(1)每个顶点出现且只出现一次。 图论 2022年02月17日 101 点赞 0 评论 107053 浏览
图的基础概念 图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之一,很多问题都可以使用图模型进行建模求解。图(Graph)通常会放在树(Tree)后面介绍,树可以说是图的特例。一、图的基础概念图的结构很简单,就是由顶点V集和边E集构成,因此图可以表示成G=(V,E)。 图论 2022年05月05日 128 点赞 0 评论 102627 浏览
计数DP实例讲解 本篇主要从计数DP上结合实例分析。一、计数类DP——整数划分整数划分大体上可以分为3类(1)考虑顺序的拆分方案(即1,1,2;和2,1,1是两种不同的方案),这种问题一般转化为完全背包即可解决。(2)不考虑顺序的拆分方案,可以划分出空集(也就是可以有对拆分完全没贡献的东西存在(0))(3)不考虑顺序的 动态规划 2022年04月04日 98 点赞 0 评论 61681 浏览
C++STL之List容器 1.再谈链表List链表的概念再度出现了,作为线性表的一员,C++的STL提供了快速进行构建的方法,为此,在前文的基础上通过STL进行直接使用,这对于程序设计中快速构建原型是相当有必要的,这里的STL链表是单链表的形式。2.头文件头文件:#include<list>3.初始化格式为:explicitl C++STL库教程(附带题库) 2022年01月24日 137 点赞 0 评论 112707 浏览
矩阵的介绍及乘法运算(附C语言实现代码) 1.矩阵概念在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中, 串、数组、矩阵和广义表 2022年04月06日 171 点赞 0 评论 168323 浏览
后记 自6月提笔写这个教程,到现在已是年末了,时光如梭,读者跟着连载应该再配合一些基本的习题和搜索应该已经基本掌握数据结构了,然而,学完这些基本的数据结构还只是计算机学习海洋的一个开始,正如我开篇所说,数据结构是计算机编程,硬件,数学的三者结合体, 后记 2022年04月07日 253 点赞 0 评论 85654 浏览
回溯法入门级讲解 说到回溯法,其实就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。回溯算法能解决如下问题:(1)组合问题:N个数里面按一定规则找出k个数的集合(2)排列问题:N个数按一定规则全排列,有几种排列方式(3)切割问题:一个字符串按一定规则有几种切割方式(4)子集问题:一个N个数的集合里有多少符合条件的子集 搜索算法 2022年04月27日 234 点赞 0 评论 77871 浏览
傅里叶-莫茨金消元法的应用 傅里叶-莫茨金消元法的英文名:Fourier-MotzkinElimination,简称FME算法,它是一种用于从线性不等式中消除变量的数学方法。它的命名源自于在1827年和1936年独立发现该算法的JosephFourier和TheodoreMotzkin的姓氏。 数学相关 2022年02月22日 55 点赞 0 评论 75353 浏览