自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 平衡搜索树--AVL树的实现

平衡搜索树在原来的二叉搜索树我们提到,如果对普通的二叉搜索树连续有序地插入会导致二叉搜索树退化成链表,操作复杂的从O(log N)退化到O(N)。而AVL树和红黑树这些平衡二叉树就是避免这种最坏情况的出现,对左右孩子子树高度差大于2时进行重新调整,让搜索树始终保持一个健康的状态,保证相关操作都在O(log N)。同时关于STL,哈希表<unordered_map>(原为<has...

2019-08-23 23:09:11 221

原创 二叉搜索树

二叉搜索树二叉搜索树是一颗二叉树,可能为空。一棵非空的二叉搜索树满足以下特征:1).每个元素有一个关键字,并且任意两个元素的关键字都不同;因此,所有的关键字都是唯一的(如果有重复的话,这样的二叉树称为有重复的二叉搜索树)。2).在根节点的左子树中,元素的关键字(如果有的话)都小于根节点的关键字。3).在根节点的右子树中,元素的关键字(如果有的话)都大于根节点的关键字。4).根节点的左右子...

2019-08-13 12:03:48 322

原创 基于优先队列的应用--堆排序和霍夫曼树

堆排序堆排序就是将数组堆化,大根堆小根堆的根元素永远是最大或者最小的,于是我们取根元素然后调整堆,继续一下次的堆化,不断重复直到取完(或者只剩下根元素)。此处采用大根堆,将根元素也就是数组的[0]元素不断放到数组的末尾。大根堆的实现可见大小根堆的实现。#pragma once//=============================基于根堆的应用--堆排序===============...

2019-08-10 17:01:36 240

原创 优先级队列--大根堆和小根堆

概述与FIFO的普通队列不同,在优先级队列中,元素出队顺序是由元素的优先级决定。比如大根堆是最大的元素先出队,小根堆是最小的元素先出队。堆是实现优先级队列效率很高的数据结构(当然我们也可以使用无序的线性表或者有序链表来实现,但是它们的删除、插入的时间复杂度至少有一个是O(n))。堆是一棵完全二叉树,这样就保证了底层存储的数组拥有很高的空间利用率。无论是大根堆还是小根堆,它们的插入和删除的复杂性...

2019-08-10 16:43:41 3275

原创 快速排序C++

单趟排序两种交换方法,一种是找到一个元素移动一个元素到对面,另外一种是找到左元素和找到右元素后交换。为什么快排每次必须从右边开始的原因见注释。找一个元素换一个元素#include <iostream>//单趟排序int partition(int a[],int low,int high) { int key = a[low];//通常将左边第一个元素作为基准元素key ...

2019-08-05 23:01:28 381

原创 基于二叉树的前序、中序、后序以及层次遍历迭代器

本文基于二叉树的实现中类似的二叉树结构,其要求节点结构只有左右孩子而无父节点的二叉树。因此,只能靠队列/栈来存储遍历的路径信息,模拟递归调用的过程。同时,本文中迭代器的判断operator==/!=只能通过判断队列/栈中的路径信息来实现。严格地讲,本文的迭代器不如叫作伴随类。因为它不够轻量,一般的迭代器只保存指针信息,而本文的迭代器使用了队列/栈。其中,前序、中序、后序迭代器的栈最大为O(...

2019-08-04 12:12:13 602

原创 二叉树的实现C++实现

树的基本性质定义:1.一棵树t是一个非空的有限元素的集合,其中一个元素为根(root),其余的元素(如果有的话)组成t的子树(subtree)。2.一棵树的高度(height)或深度(depth)是树中级的个数。3.一个元素的度(degree of an element)是指其孩子的个数,叶节点的度为0。一棵树的度(degree of a tree)是指其元素的度的最大值。二叉树定义...

2019-08-04 12:05:16 700

空空如也

空空如也

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

TA关注的人

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