自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 18923 二叉树的直径 —— SCAU 数据结构——根据树的深度算法求树的直径

C,无复杂代码,无详细注释,自写,请读者视情参考 思想: 我们在求树的深度的时候,一般采用两种方法,一种是递归计算子树的深度,一种是非递归计算栈顶指针的最远处。 对于第一种方法,其思想是对某一个节点,比较其左子树的深度和右子树的深度,取最长便是当前节点的深度。 那么是否可以利用这个比较的间隙,将左子树的深度和右子树的深度加在一起,得出当前节点的直径呢?如果可以,那么所有节点的直径中取最大值,便是一整棵树的直径了。 所需知识: C,二叉树,树的深度算法 途径: 在树的深度算法中插入一个计算直径的语句,保存直径

2021-04-20 13:23:34 825

原创 18724 二叉树的遍历运算—— SCAU 数据结构——根据先序和中序,确定后序

C,核心代码有详细注释,自写,请读者视情参考 思想: 根据中序排序的特点我们可以知道,如果我们选中其中某一节点,它的左边一定是这个节点的左子树,右边一定是这个节点的右子树。 根据先序排序的特点我们可以知道,如果我们选中其中某一节点,它右边的节点一定是先排列完左子树,再排列右子树。 那么我们能否根据这两个规律,确定唯一的二叉树? 如果确定能够构造唯一的二叉树,那么根据后序遍历的算法很容易得出后序序列。 所需知识: C,二叉树,先序遍历,中序遍历,后序遍历 途径: 采用分治思想,先分后合。将左子树和右子树逐层分

2021-04-19 20:21:55 1197

原创 18924 二叉树的宽度 —— SCAU 数据结构——根据层次遍历确定树的宽度

无复杂代码,无详细注释,自写,请读者视情参考 #include <stdio.h> #include <stdlib.h> #pragma warning(disable:4996) #define ElemType int #define OK 1 #define ERROR 0 #define MaxNodeCount 50 typedef int Status; typedef struct BiTreeNode { ElemType data; struct BiTr

2021-04-17 14:32:50 1685

原创 KMP算法的完全剖析(重点next数组)——使用证明方法理解KMP算法

核心1 next数组的引入 KMP算法相比BF算法,最大的特点就是在匹配的过程中,不需要回溯主串的指针i,且减少不必要的子串对比。 比如下面的例子: T:same123same123same123same6 S:same123same6 按照BF算法,从s开始比对子串,比对a ,比对m… …比到6的时候发现不一样 T:same123same123same123same6 S:same123same6 | 接着我们回溯子串 i 和 j( i 为主串指针,j 为查找串指针),一个一个挪,比较: T:

2021-02-16 16:38:57 320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除