数据结构
灵魂胖子
这个作者很懒,什么都没留下…
展开
-
堆
堆堆是结点间具有层序关系的完全二叉树。最大堆(maxheap):每个父节点的都大于孩子节点。在最大堆中,根的元素最大。最小堆(minheap):每个父节点的都小于孩子节点。在最小堆中,根的元素最小。堆实现了插入、删除的操作,但在插入删除之后必须对树进行更新,维护堆排序。我主要讲插入和删除操作。首先我们要建堆,现在有一组数:10, 11, 13, 12, 16, 18, 15, 17, 14, 19...原创 2018-03-19 17:29:36 · 161 阅读 · 0 评论 -
AVLTree——平衡搜索树
AVLTree——平衡搜索树AVL树的性质左子树和右子树的高度之差的绝对值不超过1树中的每个左子树和右子树都是AVL树每个结点都有一个平衡因子(balance factor--bf),任一结点的平衡因子是-1,0,1。(每个节点的平衡因子等于右子树的高度减去左子树的高度 )插入时需要满足的一些规则新增结点cur在parent的左边,parent的bf--新增结点cur在parent的右边,pare...原创 2018-04-02 16:09:19 · 134 阅读 · 0 评论 -
RBTree — 红黑树
RBTree — 红黑树 红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。红黑树是满足下面红黑性质的二叉搜索树 每个结点,不是红色就是黑色的 根结点是黑色的 如果一个结点是红色的,则它的两个子结点是黑色的 对每个结点,从该结点到其所...原创 2018-04-03 08:47:15 · 197 阅读 · 0 评论 -
BSTree ---- 二叉搜索树
BSTree ---- 二叉搜索树二叉搜索树的性质: 每个结点都有一个作为搜索依据的关键码(key),所有结点的关键码互不相同。 左子树上所有结点的关键码(key)都小于根结点的关键码(key)。 右子树上所有结点的关键码(key)都大于根结点的关键码(key)。 左右子树都是二叉搜索树。故中序遍历这棵树它的key是按升序排列的二叉搜索树的插入插入结点时,比当前结点小就往左树走,比当前结点大,就往...原创 2018-04-05 16:29:56 · 299 阅读 · 0 评论 -
map/set
set/multiset,map/multimap内部元素有序排列,新元素插入的位置取决于它的值,查找速度快。除了各容器都有的函数外,还支持以下成员函数:find:查找等于某个值的元素lower_bound:查找某个下界upper_bound:查找某个上界equal_range:同时查找上界和下界count:计算等于某个值的元素个数insert:用以插入一个元素或一个区间成员函数iterator ...原创 2018-05-17 20:15:31 · 161 阅读 · 0 评论 -
Sort —— 排序算法
Sort —— 排序算法 插入排序:直接插入排序、希尔排序选择排序:选择排序、堆排序交换排序:冒泡排序、快速排序归并排序:归并排序原创 2018-06-03 20:02:16 · 1317 阅读 · 0 评论 -
链表面试题
链表面试题基础 1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 1.从尾到头打印单链表 2.删除一个无头单链表的非尾节点 3.在无头单链表的一个节点前插入一个节点 4.单链表实现约瑟夫环 5.逆置/反转单链表 6.两两交换链表中的结点 7.单链表排序(冒泡排序&快速排序) 8.合并两个有序链表,合并后依然有序 9.查找单链表的中间节点,...原创 2018-08-05 16:59:19 · 622 阅读 · 0 评论 -
BTree —— 多路查找树
BTree —— 多路查找树2-3树 多路查找树中的每一个结点都具有两个或者三个孩子我们称之为2-3树。2-3树的所有叶子都在同一层次。插入原理对于2-3树的插入来说,与二叉排序树相同,插入操作一定是发生在叶子结点上。但与二叉树不同的是,2-3树插入一个元素的过程有可能会对该树的其余结点产生连锁反应。以这个图为例: 插入分为三种情况:(根据上图来插入) 第一种:对于...原创 2018-08-18 17:11:39 · 627 阅读 · 0 评论 -
UnionSet —— 并查集
UnionSet —— 并查集什么是并查集?并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。并查集的主要操作: 1、初始化:把每个点所在集合初始化为其自身; 2、查找:查找元素所在的集合即根节点;...原创 2018-08-20 10:54:25 · 385 阅读 · 0 评论