自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 【二叉排序树详解】二叉排序树的创建、节点查找和删除-数据结构08

什么是二叉排序树(BST)二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。在一般情况下,查询效率比链表结构要高。 要求:对于二叉树中的任何一个非叶子结点,要求左子结点比当前结点值小,右子结点比当前结点值大。

2021-12-12 10:54:57 1602

原创 【赫夫曼树详解】赫夫曼树简介及java代码实现-数据结构07

定义:赫夫曼树是n个带权叶子结点构成的所有二叉树中,带权路径长度(WPL)最小的二叉树。叶子结点的带权路径:叶子结点权值*到根节点的路径长度(叶结点的层数)树的带权路径长度WPL(weighted path length):树中所有叶子结点的带权路径长度之和。

2021-12-05 15:46:22 302

原创 【线索二叉树详解】数据结构06(java实现)

1. 线索二叉树简介定义: 在二叉树的结点上加上线索的二叉树称为线索二叉树。二叉树的线索化: 对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。现在我们来计算一下任意一颗二叉树有多少个空的指针域假设有n个结点,一个结点有2个指针域(指向左右子节点),一共就有2n个结点除了第一个结点不需要父节点指向,其余所有节点均需要指针,所以有n-1个已经使用的指针域剩下:2*n-(n-1)=n+1结论:任意二叉树的空余指针域为n+1

2021-12-04 17:04:11 865

原创 【二叉树详解】二叉树的创建、遍历、查找以及删除等-数据结构05

二叉树1. 二叉树简介定义: 每一个结点的子节点数量不超过 2二叉树的结点分为:左节点、右节点满二叉树: 每个结点都有两个子结点的二叉树(除了叶子结点外)完全二叉树: 除去最后一层,是一个满二叉树,并且最后一层结点左连续(从左到右,从上到下,依次编号1,2,3,4…,这样的编号和满二叉树一一对应的二叉树叫完全二叉树)2. 链式存储的二叉树2.1 创建二叉树思路: 首先必须有一个BinaryTree 二叉树的类-用于设置根节点(也可以是一颗空树)​ 其次需要结点

2021-11-21 17:15:51 1069

原创 【算法的时间复杂度和空间复杂度】-算法02

算法的时间复杂度和空间复杂度一个算法的好坏我们主要从"时间"和"空间" 两个维度来衡量时间维度:是指执行当前算法所消耗的时间,我们通常用 “时间复杂度” 来描述。空间维度:是指执行当前算法需要占用多少内存空间,我们通常用 “空间复杂度” 来描述。1. 时间复杂度我们先来看一个简单的例子public class TimeCompare { public static void main(String[] args) { int num1=0; int num

2021-11-14 15:24:23 399

原创 【两分钟带你了解树】数据结构04-树结构的概述

树结构1. 树结构概述1.1 什么是树上面就是一棵树,简单来讲就是各个节点 “一对多” 的关系(我们可以看成一颗倒置的树)1.2 为什么要使用树线性结构中删除元素和查找元素的缺陷,在树结构中能得到解决如:线性结构中数组-虽然查找元素方便快捷(通过下标),但是删除元素非常麻烦​ 链表-虽然删除元素和插入元素方便,但是查找元素非常不方便1.3 树的基本概念根节点:树中唯一一个没有父节点的节点(一般最上面一个就是根节点)双亲节点:俗称父

2021-11-13 17:39:51 244

原创 【使用递归玩通关汉诺塔游戏】算法01-递归(斐波那契数列、汉罗塔问题)-java实现

递归定义:在一个方法(函数)的内部调用该方法(函数)本身的编程方式简而言之就是 “自己调自己”在玩游戏之前让我们先对递归有一个简单的了解吧!5.1 递归简介递归必须有一个出口,也就是说必须有一个限制条件,不能无限制的自己调用自己,否则会出现栈溢出的错误我们看一个最简单的递归代码:public class TestRecursive { public void recursive(int index){ if(index>0){ System

2021-11-09 10:23:09 3535

原创 【链表-(单链表、循环链表、双向链表)】数据结构与算法03-java实现

链表所谓链表,通俗的说就是用一条链把数据都串起来前面我们提到的都是顺序存储结构,这里的链表属于链式存储结构什么是链表呢,我们直接上图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fX33FxaQ-1636296184150)(C:\Users\Administrator\Desktop\Java\1. 基础\1-5. 数据结构和算法\img\单链表.png)]我们可以看到:每个链表结点至少包含两个元素:数据data、地址next(指向下一个数据)4.1 单链表代

2021-11-08 14:20:52 334

原创 【栈和队列】数据结构02-(java实现)

1.栈1.1 简介什么是栈呢?大家可以把它想象成一个狭窄的盒子,我们往里面放东西,每次取出时,只能取出最后放进去的(最上面一个),总结来讲就是 “先进后出”,如下图:特点:先进后出,每次只能取得栈顶元素1.2 栈的实现思想:使用数组来实现栈进栈push时,依次往数组后追加元素即可(和前面讲过的数组操作一样)在出栈pop时,我们每次都取最后一个元素相关操作:进栈push 、出栈pop 、获取栈顶元素peek 、判断为空isEmpty代码:public class MyStack {

2021-11-07 22:38:05 122

原创 【动态数组】数据结构01-(java实现)

1. 数组数组的局限性:长度固定,一旦定义不能修改1.1 数组元素的增加核心思想:​创建一个新数组,长度为原数组+1,将原数组赋值到新数组,最后将增加的元素放到新数组最后一个位置,把新数组赋值给原数组。代码实现:import java.util.Arrays;public class ArrayAppend { //在数组末尾追加一个元素 public static void main(String[] args) { //解决数组长度不可变问题

2021-11-06 21:34:10 157

csscsscsscss

csscsscsscss

2022-02-22

空空如也

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

TA关注的人

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