![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构小白的学习之路
文章平均质量分 53
qs_266
一颗闲心观世界,半盏清茗醒人间
展开
-
赫夫曼树学习记录
文章目录一、基本介绍二、赫夫曼树几个重要概念和举例说明三、赫夫曼树创建思路一、基本介绍给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近二、赫夫曼树几个重要概念和举例说明路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结原创 2022-05-13 14:33:36 · 165 阅读 · 0 评论 -
线索化二叉树的学习记录
文章目录前言一、线索化二叉树是什么?二、应用案例前言先看一个问题:将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树. n+1=7问题分析:当我们对上面的二叉树进行中序遍历时,数列为 {8, 3, 10, 1, 6, 14 }但是 6, 8, 10, 14 这几个节点的 左右指针,并没有完全的利用上.如果我们希望充分的利用 各个节点的左右指针, 让各个节点可以指向自己的前后节点,怎么办?解决方案-线索二叉树一、线索化二叉树是什么?n 个结点的二叉链表中含原创 2022-05-10 14:30:28 · 104 阅读 · 0 评论 -
树学习记录
树学习记录文章目录树学习记录前言为什么需要树这种数据结构1) 数组存储方式的分析2) 链式存储方式的分析3) 树存储方式的分析树的示意图树的常用术语在这里插入图片描述一、二叉树的概念二、二叉树的遍历1.二叉树遍历应用实例(前序,中序,后序)应用实例的说明和思路2.二叉树遍历查找指定结点(前序,中序,后序)思路3.二叉树删除结点思路前言为什么需要树这种数据结构1) 数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入原创 2022-05-07 16:32:01 · 74 阅读 · 0 评论 -
查找算法学习
文章目录前言一、线性查找算法1.1 介绍1.2 思路二、二分查找2.1 介绍2.2 思路三、插值查找3.1 介绍3.2 思路前言在 java 中,我们常用的查找有四种:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找一、线性查找算法1.1 介绍即给定一个数组,判断数列中是否包含某个指定的值 要求: 如果找到了,就提示找到,并给出下标值。1.2 思路循环遍历数组 依次与指定值进行比较 存在就返回代码实现:/* * 线性查找 */public class Seq原创 2022-05-05 10:24:11 · 452 阅读 · 2 评论 -
排序算法学习记录
排序算法学习原创 2022-04-26 10:39:26 · 479 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度学习
文章目录前言一、算法的时间复杂度1 .度量一个程序(算法)执行时间的两种方法2.时间频度基本介绍举例说明-基本案例举例说明-忽略常数项结论:举例说明-忽略低次项结论:举例说明-忽略系数结论:3.时间复杂度4.常见的时间复杂度1) 常数阶 O(1)2) 对数阶 O(log2n)3) 线性阶 O(n)4) 线性对数阶 O(nlogN)5) 平方阶 O(n²)6) 立方阶 O(n³)、K 次方阶 O(n^k)5. 平均时间复杂度和最坏时间复杂度三、算法的空间复杂度简介基本介绍总结前言算法作为程序的灵魂 作为原创 2022-04-25 14:55:33 · 196 阅读 · 0 评论 -
递归学习——八皇后问题:java实现
八皇后问题简介代码实现public class Queen8 { // 皇后的位置数组 private static int[] queen; // 计算有多少种解法 private static int count; // 棋盘的大小 private static int maxSize = 8; public static void main(String[] args) { // TODO Auto-generated method stub // 初始化皇后数组原创 2022-04-24 15:18:10 · 522 阅读 · 0 评论 -
递归学习——迷宫问题:Java实现
迷宫问题简介:代码实现public class Maze { public static void main(String[] args) { // TODO Auto-generated method stub // 定义一个迷宫 int[][] migong = new int[8][7]; // 开始设置墙体 // 1、将第一行和最后一行设置为墙体 for (int i = 0; i < 7; i++) { migong[0][i] = 1; mig原创 2022-04-24 15:16:10 · 326 阅读 · 0 评论 -
递归算法——汉诺塔问题的代码(java实现)
递归算法汉诺塔结语汉诺塔汉诺塔实现代码.// An highlighted block /** * * @param num 盘子的数量 * @param from 开始移动的柱子 * @param in 中间转换用的柱子 * @param to 所有盘子要去的柱子 * 无论盘子有多少,都认为有两个盘子,即n个盘子可视为上面n-1个盘子和最下面一个盘子 */ public static原创 2020-08-16 16:44:01 · 400 阅读 · 0 评论 -
稀疏数组算法
package com.zx.sparsearray;import java.awt.Desktop;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.O原创 2022-04-19 17:49:16 · 67 阅读 · 0 评论 -
栈 java 实现
数组实现public class ArrayStackDemo { public static void main(String[] args) { // TODO Auto-generated method stub // 创建栈 ArrayStack stack = new ArrayStack(4); boolean loop = true;// 用来判断是否退出 Scanner scanner = new Scanner(System.in); String key =原创 2022-04-21 14:19:28 · 566 阅读 · 0 评论 -
链表 java 实现
单链表public class SingleLinkedListDemo { public static void main(String[] args) { // TODO Auto-generated method stub // 开始测试 HeroNode hero1 = new HeroNode(1, "亚索", "疾风剑豪"); HeroNode hero2 = new HeroNode(2, "易", "无极剑圣"); HeroNode hero3 = new Hero原创 2022-04-21 14:17:37 · 955 阅读 · 0 评论 -
队列java数组实现
使用java实现队列问题原创 2022-04-21 14:14:24 · 382 阅读 · 0 评论