自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构――堆的基本概念及其操作

一、什么是堆堆是利用完全二叉树的结构来维护一组数据,然后进行相关操作,一般的操作进行一次的时间复杂度在O(1)~O(log n)之间。堆的两个特性:结构性:用数组表示的完全二叉树;有序性:任一结点的关键字是其子树所有结点的最大值(或最小值)。堆的两种类型:“最大堆(MaxHeap)”,也称“大顶堆”:任一结点的关键字是其子树所有结点的最大值。“最小堆(MinHeap)”,也称“小顶堆” :任一结点的关键字是其子树所有结点的最小值。下面举一些最大堆最小堆的例子,如图所示:左边

2020-09-06 16:20:08 880

原创 数据结构——平衡二叉树的定义及调整

一、什么是平衡二叉树?说到平衡二叉树,我们就得先说说什么是平衡因子。平衡因子(Balance Factor,简称BF): BF(T) = hL - hR, 其中hL和hR分别为树T的左、右子树的高度。所以平衡二叉树就是:平衡二叉树(Balanced Binary Tree)(AVL树):空树,或者任一结点左、右子树高度差的绝对值不超过1,即平衡因子不大于1的树,|BF(T) |≤1。注意:一定要是任一结点的左右子树的高度差的绝对值不超过1.下面是判别是否是平衡二叉树的例子:这里我就不分

2020-09-05 17:13:41 1579

原创 数据结构——二叉搜索树详解

二叉搜索树一、什么是二叉搜索树二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。下图是几个例子:上图值为10的结点的右子树为7,比10小,不满足条件2,所以这棵树不是二叉搜索树。上图各个结点都满足条件,所以这棵树是二叉搜索树。上图各个结点都满足条件,所以这棵树也是二叉搜索树

2020-09-04 21:03:06 55788 9

原创 数据结构——二叉树的层序遍历

层序遍历二叉树的遍历的核心问题就是:二维结构的线性化。简单来说就是以下两个操作:从结点访问其左、右儿子结点访问左儿子后,右儿子结点怎么办?因为树是二维结构,即一个结点是连接了两个结点。当我访问了某个结点的其中一个子结点后,另外一个要怎么办?肯定要把它保存起来,或者把自己保存起来,因为我自己在,我就可以找到另外一个子结点。因此我们需要考虑如何解决上述的问题。方法如下:需要一个存储结构保存暂时不访问的结点存储结构:堆栈、队列什么是层序遍历层序遍历是比较接近人的思维方式的一种遍

2020-09-04 16:31:34 740

原创 数据结构——二叉树的非递归遍历

先说一下:二叉树的非递归遍历的基本思路:使用堆栈下面是用到的栈的存储结构以及基本操作,代码如下:/*非递归遍历中栈存储结构:包括栈的容量,栈顶指针和栈底指针。代码如下:*/typedef struct{ bst *base; bst *top; int stacksize;}stack;/*非递归遍历中所用到的栈的基本操作:代码如下:*/int initialstack(stack &s)//初始化栈{ s.base=new bst[200];

2020-09-03 20:13:58 297

原创 数据结构——二叉树的构建及遍历操作

二叉树的构建常量的预定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;二叉树的定义以及创建typedef struct BiTNode{/* 树结点定义 */ ElemType data;/* 结点数据 */ struct BiTN

2020-09-03 18:39:29 374

原创 18708 最大子段和的四种解法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、解法一:暴力解法二、解法二:不算太暴力的暴力解法三、解法三:分而治之四、解法四:在线处理前言最大子列和问题非常常见。该问题的解法根据时间复杂度有四种解法。下面我会具体阐述这四种解法一、解法一:暴力解法该解法时间复杂度为O(n3),即:用三层循环。思路是:第一层循环确定子列左端位置,第二层循环确定子列右端位置,第三层循环将第一层循环确定的子列左端A[i]到第二层循环确定的子列右端A[j]的每一个值相加并赋值给Thi

2020-09-03 16:55:49 1212 2

原创 CSS基础

 CSS: Css:层叠样式表【cascading style sheet】,给页面标签添加样式 CSS注释: 语法:/内容/ 语法规则: 格式声明语句,要用 {属性:属性值;} 括起来,里面放各种各样的格式声明语句 一条格式声明语句 是由 属性:属性值; 构成 属性,就是css各种各样的属性,属性在css中已经定义好了 在属性值的后面用 ; 结束 Css样式必须写单位 Css样式的数值单位用 px 像素 (0不写单位 0px)HTML:<标签名 属性

2020-07-08 09:30:36 150

空空如也

空空如也

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

TA关注的人

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