
Java数据结构与算法分析
文章平均质量分 81
Java数据结构与算法分析
码农StayUp
人生就是一个不断学习的过程,通过学习来充实自己的头脑,让自己更有智慧的生活下去,去探索那未知领域的神秘,去享受成长带来的快乐和惬意。
展开
-
『数据结构与算法』散列表(哈希表)
GitHub源码分享微信搜索:码农StayUp主页地址:https://gozhuyinglong.github.io源码分享:https://github.com/gozhuyinglong/blog-demos1. 什么是散列表散列表(Hash Table)也叫哈希表,是根据给定关键字(Key)来计算出该关键字在表中存储地址的数据结构。也就是说,散列表建立了关键字与存储地址之间的一种直接映射关系,将关键字映射到表中记录的地址,这加快了查找速度。使用函数表达式来表示,应为:hash(ke.原创 2021-01-18 21:15:39 · 2531 阅读 · 0 评论 -
『数据结构与算法』B树图文详解(含完整代码)
GitHub源码分享微信搜索:码农StayUp主页地址:https://gozhuyinglong.github.io源码分享:https://github.com/gozhuyinglong/blog-demos1. 前言迄今为止,已经介绍了《 二叉查找树 》和《 AVL树 》,我们始终假设可以把整个数据结构存储在内存中。可是,如果数据多到内存装不下,这就意味着必须把数据放在磁盘上,显然这些数据结构不再适用。问题在于磁盘的I/O速度是远远不如内存访问速度的,然而从一棵树中查找到某个元素,.原创 2020-12-30 19:51:01 · 1968 阅读 · 0 评论 -
『数据结构与算法』AVL树(平衡二叉树)
GitHub源码分享微信搜索:码农StayUp主页地址:https://gozhuyinglong.github.io源码分享:https://github.com/gozhuyinglong/blog-demos1. AVL树AVL(Adelson-Velskii 和 Landis)树是带有平衡条件的二叉查找树,又叫做平衡二叉树。在AVL树中任何节点的两个子树高度差最多为1,所以它又被称为高度平衡树。如下图中可以清晰的看出,左边的树其根节点左子树高度为3,右子树高度为2,符合AVL树的特.原创 2020-12-20 10:38:28 · 1619 阅读 · 1 评论 -
Java数据结构与算法分析 | 二叉查找树(BST)
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures1. 二叉查找树(Binary Search Tree)二叉查找树又叫二叉排序树(Binary Sort Tree),或叫二叉搜索树,简称BST。BST是一种节点值之间有次序的二叉树。其特性是:若任意节点的左子树不空,则左原创 2020-12-05 23:10:13 · 624 阅读 · 1 评论 -
Java数据结构与算法分析 | 二叉树
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures1. 二叉树(Binary Tree)二叉树是一棵特殊的树,其结构简单但很重要。二叉树的特点是每个节点最多有两棵子树,并且有左右之分。满二叉树如果一棵二叉树的所有叶子节点都在最后一层,称为满二叉树。满二叉树的结点总数原创 2020-12-01 07:04:12 · 433 阅读 · 0 评论 -
Java数据结构与算法分析 | 树
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures1. 前言我们前面讲到了数组和链表两种数据结构,其各自有自己的优缺点,我们来回顾一下。数组(Array)优点:通过下标访问速度非常快。缺点:需要检索具体某个值时,或者插入值时(会整体移动)效率较低链表(Link原创 2020-11-30 18:29:39 · 559 阅读 · 0 评论 -
Java数据结构与算法分析 | 队列
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures1. 队列(queue)队列和栈一样,也是一个操作受限制的线性表。不同的是队列的插入在一端进行,我们称为队尾(rear);而删除(取出)在另一端进行,我们称为队头(front)。队列是一个先进先出(FIFO - First原创 2020-11-30 08:24:30 · 410 阅读 · 0 评论 -
Java数据结构与算法分析 | 栈
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures1. 栈(Stack)栈又叫堆栈,是一种运算受限制的线性表,限定只能在一端进行插入和删除操作,该端称为栈顶(Top),相对的另一端叫栈底(Bottom)。根据栈的定义可知,最先进入栈的元素在栈底,最后进入栈的元素在栈顶。而删原创 2020-11-25 22:32:25 · 422 阅读 · 0 评论 -
Java数据结构与算法分析 | 链表(单链表、双链表、环形链表)
GitHub源码分享项目主页:https://github.com/gozhuyinglong/blog-demos本文源码:https://github.com/gozhuyinglong/blog-demos/tree/main/java-data-structures/src/main/java/com/github/gozhuyinglong/datastructures/linkedlist1. 前言通过前篇文章《数组》了解到数组的存储结构是一块连续的内存,插入和删除元素时其每个部分都原创 2020-11-22 23:03:02 · 917 阅读 · 0 评论 -
Java数据结构与算法分析 | 稀疏数组
当一个数组中大部分元素是0,或者是一个相同的值时,可以使用稀疏数组来保存该数组。原创 2020-11-17 09:30:02 · 408 阅读 · 0 评论 -
Java数据结构与算法分析 | 数组
数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据原创 2020-11-15 13:11:10 · 721 阅读 · 0 评论