自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

silence1772的博客

为者常成,行者常至

  • 博客(7)
  • 收藏
  • 关注

原创 红黑树

红黑树是一种特殊的二叉搜索树,

2018-11-07 20:02:50 251

原创 二叉搜索树及AVL平衡二叉搜索树

二叉搜索树二叉搜索树是二叉树的的一种,只不过多了个限制条件,即左子树节点的值都小于该点,右子树节点的值都大于该点。定义:// 树节点template <typename T>class Node{public: T key; Node* parent; Node* left; Node* right; Node(T k, Node* p = nullptr,...

2018-11-06 13:39:54 232

原创 并查集

并查集的实现比较简单,注意一点在查找时执行路径压缩即可。vector<int> Parent(100);vector<int> Rank(100, 0);void Init(){ for (int i = 0; i < Parent.size(); ++i) Parent[i] = i;}int Find(int x){ if (x != P...

2018-11-04 16:52:19 122

原创 KMP字符串匹配算法

“看毛片”算法可以说是许多人学习数据结构路上的一道坎,虽说代码并不算难,但总是写了就忘,其算法思想也是难以理解。其实多写几遍就会发现,也就那么回事。主要思想:kmp算法主要是通过一个next数组来加速匹配的过程,这个next数组也称为失配数组。现在我们来考虑下面这种情况,母串与匹配串匹配到了如图箭头位置,但此时A和B并不匹配,怎么办呢?注意到图中蓝色部分是相等的子串,因此我们直接移动匹配串让A...

2018-11-04 14:42:01 158

原创 二分查找

二分查找主要思想就是在一个排好序的数组中,取到位于中间的元素,根据这个元素与要查找的值进行比对,来判断是往左边走还是右边。时间复杂度为O(logn),是许多题目的解题关键。三分支版传入数组的起始和结束边界,以及要查找的值,查找到则返回下标,否则返回-1,因为最坏情况下要进行两次比较,所有时间复杂度的常数项稍微高一点。int BinarySearch(vector<int>&amp...

2018-11-03 23:25:32 129

原创 二叉树的Morris遍历

二叉树的普通遍历算法有很多,但它们都无法做到额外空间复杂度O(1),因为它们总要用到栈来保存信息,才能够从下层回到上层。这里介绍Morris遍历,能够做到时间复杂度为O(n),额外空间复杂度为O(1)。Morris中序遍历Morris遍历其实就是利用了树中大量的null指针。如下图,我们现在先来考虑中序遍历,对于节点4,什么时候会打印它呢?由中序遍历的序列得知,在节点4的左子树都打印完毕后,...

2018-11-03 13:34:14 341

原创 二叉树各种遍历算法

#include <iostream>using namespace std;struct Node{ int value; struct Node* left; struct Node* right; Node(int data) : value(data), left(nullptr), right(nullptr) {};};// 先序遍历void Pre...

2018-11-01 22:15:12 20549 1

空空如也

空空如也

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

TA关注的人

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