数据结构

图的存储-邻接矩阵及C/++代码实现

1.什么是图图论(graphtheory)是数学的一个分支,它以图为研究的对象。图论本身是应用数学的一部分,历史上图论曾经被很多数学家各自独立建立过。关于图论的最早文字记载最早出现在欧拉1736年的论著中,也就是著名的柯尼斯堡(Konigsberg)问题(七桥问题)。

哈夫曼树编码与查找算法(C语言实现)

1.哈夫曼树的查找算法查找算法根据构建哈夫曼树算法衍生而来,我们在构建二叉树时需要查找出哪些数据最小,以符合我们哈夫曼树的最优解情况。查找权重值最小的两个结点的思想是:从待处理数据的头部位置开始,首先找到两个无父结点的结点(说明还未使用其构建成树),

哈夫曼树的介绍及C语言代码实现

1.简介哈夫曼树(HuffmanTree),又名:最优二叉树,赫夫曼树其标准含义是:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

二叉树(树)与森林的相互转换

1.什么是森林森林,顾名思义,就是由众多的树构成的一组数据结构,这些树本身没有什么联系,用系统的语言描述就是:森林:m(>=0)棵互不相交的树的集合【注意这里森林是可以有0颗树的,同数学上的空集】如果把一棵树当作一个独立的点,那么森林就是一个点的集合。

树形模拟法的运用(C语言例题讲解)

1.模拟法简介在前面的文章已经提到过模拟这个思维,模拟的思维无处不在,就树形的DFS算法而言,我们更多的情况并非建立一棵树,这对我们书写和易用性而言太差了,我们通常会适用多个数组进行模拟,树也是可以利用数组进行模拟的。如下图:上面一排表示数组下标,

DFS(深度优先搜索)算法讲解(附模板及习题)

1.DFS简介深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。

树的遍历之后序遍历二叉树

1.简介依旧是下面的这三句话:先序遍历:根左右中序遍历:左根右后序遍历:左右根后序遍历就是在访问二叉树的结点的时候采用,先左,再右,再根的方式,对于一个最简单的访问而言如图,先访问左节点B,之后访问右结点C,最后访问根节点A,后序遍历的访问顺序就是BCA然而实际上的遍历访问并没有那么简单,

树的遍历之中序遍历二叉树

1.简介依旧是下面的这三句话:先序遍历:根左右中序遍历:左根右后序遍历:左右根在上文我们接触到了先序遍历,本文我们开始学习中序遍历,中序遍历采用左根右的遍历方式,如图,就一个最简单的二叉树遍历而言,中序遍历的遍历访问过程是先B再A再C。实际上的二叉树并没有这么简单,

树的遍历之先序遍历二叉树

1.遍历简介:树作为非线性数据结构,在我们取出数据时就需要设计遍历,所谓遍历,就是按照一定的规则性,将数据结构中的所有数据全部依次访问,而二叉树本身并不具有天然的全局次序,故为实现遍历,需通过在各节点与其孩子之间约定某种局部次序,间接地定义某种全局次序,这便是我们常规定的先序,中序,后续遍历。

二叉树的存储(C语言实现)

二叉树存储1.简介根据前文的介绍,我们知道了二叉树的性值,其就是一种每一个结点中只允许拥有左右孩子(或为空)的树,这种数据结构在我们的实际设计中非常常用,如前文提到的STL中的set集合,其底层就是一颗标准的红黑树(二叉树的一种),我们这里以创建一颗二叉树并实现通过特定的插入顺序和读取顺序达成读取为顺