数据结构
Kuroba_thief
互相交流
展开
-
详解KMP算法
今天整理一下关于KMP算法的一些理解,如果有什么不对的地方还请大家指正! 它的作用我简单的介绍一下: 关于KMP算法,我们首先要明白几个概念: ① 字符串前缀、最长字符串前缀 ②字符串后缀、最长字符串后缀 ③公共字符串 现在解释一下:假设有一个字符串:abababaa 字符串前缀:除了最后一个原创 2017-11-30 23:03:29 · 1244 阅读 · 1 评论 -
二叉树的基本操作
本篇着重介绍二叉树的一些基本操作,实现二叉树的一些基本接口。二叉树的基本数据成员template<class T> struct BinaryTreeNode { BinaryTreeNode<T> * _left; BinaryTreeNode<T> * _right; T _data; BinaryTreeNode(cons...原创 2018-04-12 10:29:23 · 417 阅读 · 0 评论 -
搜索之二叉搜索树
本文主要讲一下二叉搜索树的相关操作——插入、删除和查找。 概念:二叉搜索树又称二叉排序树,它或者是一颗空树,或者是一颗具有以下性质的树。 性质:①若它的左子树不为空,则左子树上所有节点的值都小于根节点的值; ②若它的右子树不为空,则右子树上所有节点的值都大于根节点的值; ③它的左右子树也分别为二叉搜索树; 由于二叉搜索树的插入和查找操作相较于删原创 2018-04-20 23:29:33 · 304 阅读 · 1 评论 -
浅析二叉平衡树之AVL树
在前面的文章中介绍了二叉搜索树,尽管它可以缩短查找的速率,但是在数据有序或者接近有序的情况下,二叉搜索树就会退化成一棵单支树,查找的效率就会变得低下。因此,就有两位伟大的数学家发明了一种新的数据结构——AVL树,解决了二叉搜索树的一些不足。什么是AVL树?(概念)一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:1、它的左右子树都是AVL树2、左子树和右子树高度之差(简称平衡因子)的绝对值不...原创 2018-05-01 16:20:33 · 324 阅读 · 0 评论 -
浅析平衡搜索树之——红黑树
红黑树概念红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。特性如下:1. 每个节点,不是红色就是黑色的2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个子节点是黑色的4. 对每个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目...原创 2018-05-19 10:49:45 · 395 阅读 · 0 评论 -
插入排序——基本插入排序与希尔排序
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。基本插入排序思路:①先将第一个元素看作是有序区间,第二个元素开始后的元素看作未排序列;②从第二个元素开始遍历,先让待排数据与前面的有序区间的最后一个数据进行比较, ...原创 2018-05-15 10:22:46 · 1021 阅读 · 0 评论