![](https://img-blog.csdnimg.cn/ac997057450e43c59bde5b66f1ee3f48.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 95
介绍基础的数据结构,复杂度,顺序表,链表,栈与队列,树,排序等。
未见花闻
2021博客新星top4,2021博客之星前50名。一枚双非非科班在读本科大学生,努力奋斗转码中,想去大厂。欢迎一起交流,相互学习。
展开
-
数据结构与算法之让我们种下一棵字典树(Java/C++双语言实现)
本篇文章将介绍一种经常使用的数据结构——字典树,它又称Tire树,前缀树,字典树,顾名思义,是关于“字典”的一棵树。这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,路径中每条边的字母连起来就是一个单词,今天我们就来种下这样的一棵树,它在竞赛和面试笔试都会经常用到,展示代码:Java/C++。原创 2022-11-26 09:08:31 · 1466 阅读 · 20 评论 -
【闲笔杂谈】ArrayList的构造与扩容机制
本篇文章将介绍Java中ArrayList的扩容机制,其实创建ArrayList对象的时候,系统并没有给ArrayList中数组开辟空间,第一次开辟空间的时机是第一次插入数据的时候。原创 2022-10-02 23:11:04 · 322 阅读 · 0 评论 -
HashMap与HashSet的底层实现原理
本篇文章将介绍Java中HashMap的底层实现原理,有关HashMap为数组开辟内存的时期,默认的容量,默认负载因子,树化的条件,HashMap的扩容机制,put方法的过程以及HashMap中的哈希函数。原创 2022-08-14 08:00:00 · 2025 阅读 · 35 评论 -
【JavaSE与数据结构】数据结构之哈希表
本篇文章将介绍哈希表的基本概念,哈希函数,哈希冲突的预防以及哈希冲突的解决方式,哈希表的简单实现。原创 2022-08-12 21:20:59 · 577 阅读 · 35 评论 -
【JavaSE与数据结构】数据结构之二叉搜索树
本篇文章带大家认识数据结构——二叉搜索树,本文将介绍搜索树的概念以及使用java实现二叉搜索树。原创 2022-03-10 18:24:14 · 1007 阅读 · 31 评论 -
【JavaSE专栏内容导航】JavaSE与数据结构基础知识系列
大家好!这是Java基础知识博文的导航帖,收藏我!学习Java不迷路!原创 2021-11-11 08:53:16 · 1999 阅读 · 11 评论 -
【JavaSE与数据结构】Java集合框架之Set与Map及其相关实现类
本篇文章带大家认识集合框架—Set与Map及其相关实现类,这是关于集合框架的最后一篇文章,本文将介绍Set与Map及其相关实现类的使用,它们底层的实现原理暂不关心,重点是使用,后续文章将会介绍底层的原理。原创 2022-03-07 12:20:35 · 1563 阅读 · 50 评论 -
【JavaSE与数据结构】排序算法之堆排序与归并排序
本篇文章带大家认识排序算法——堆排序与归并排序,堆排序在讲解堆和优先队列的时候已经将原理介绍了一点点,并使用优先级队列实现了堆排序,本文将使用建堆和向下调整的方式实现堆排序,每种排序算法都有一个核心,向下调整是堆排序的核心,而归并排序的核心就是合并两个有序的数组,实现代码语言为java。原创 2022-02-26 12:06:30 · 1117 阅读 · 50 评论 -
【JavaSE与数据结构】排序算法之快速排序
本篇文章带大家认识排序算法——快速排序,从名字上就能看出来,因为它比较快,所以叫做快速排序,它也是一种基于比较的排序算法,本文将以图解动图的形式解读快速排序,代码实现语言为java。原创 2022-02-24 12:00:32 · 859 阅读 · 47 评论 -
【JavaSE与数据结构】排序算法之冒泡排序,选择排序,插入排序与希尔排序
本篇文章带大家认识排序算法——冒泡排序,选择排序,插入排序与希尔排序,其中冒泡排序,选择排序,插入排序是基础的排序算法,希尔排序是插入排序的优化,四种排序算法全部都是基于比较的排序算法,本文将以图解动图的方式描述算法实现过程,实现代码为java。原创 2022-02-21 23:08:58 · 1106 阅读 · 35 评论 -
【JavaSE与数据结构】堆,优先级队列,topK问题与堆排序
本篇文章带大家认识数据结构——堆,所谓的堆,其实就是使用顺序表实现的树,前面所介绍的二叉树是基于链式结构所实现的,本文将介绍底层为顺序表的二叉树,由于使用顺序表实现非完全二叉树会存在内存空间浪费问题,所以常常使用顺序表实现完全二叉树,而这个使用顺序表所实现的完全二叉树就是堆。原创 2022-02-14 19:32:03 · 857 阅读 · 32 评论 -
【JavaSE与数据结构】数据结构与算法之二叉树(实践篇)
本篇文章带大家认识数据结构——二叉树,树是一种非线性的数据结构,它是由有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。本文将从通过20多道二叉树力扣牛客题介绍二叉树的基本操作,创建以及应用,所以学习完本文,除了能够增加对二叉树结构的了解,还能掌握20多道在线编程题,如果对二叉树基本概念特点性质不清楚的请阅读博主的历史博文:树与二叉树(理论篇)。全文大约2.6w字,建议收藏哦!原创 2022-01-28 20:00:35 · 1230 阅读 · 33 评论 -
【JavaSE与数据结构】数据结构与算法之树与二叉树(理论篇)
本篇文章带大家认识数据结构——树与二叉树,树是一种非线性的数据结构,它是由有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。本文将从理论的角度介绍树与二叉树的概念特点与性质,为后续树的实践打下理论基础。原创 2022-01-24 21:52:11 · 885 阅读 · 22 评论 -
【JavaSE与数据结构】队列,Queue,Deque接口与LinkedList类
本篇文章带大家认识Java集合——Queue,LinkedList,Queue就是队列的意思,是一种数据结构,又叫先进先出表,本文首先会介绍数据结构《队列》,了解清楚队列的特点与性质,双端队列,循环队列,然后会根据队列的性质简单来模拟队列最后介绍集合框架Queue,Deque接口,LinkedList类常见方法的使用。原创 2022-01-22 21:52:05 · 1662 阅读 · 15 评论 -
【JavaSE与数据结构】栈与Stack类
本篇文章带大家认识Java集合——Stack,Stack就是栈的意思,是一种数据结构,又叫先进后出表,本文首先会介绍数据结构《栈》,了解清楚栈的特点与性质,然后会根据栈的性质简单来模拟栈以及集合框架Stack类常见方法的使用。Tips:数据结构——链表,在博主的历史文章中介绍过并通过Java和C语言都实现模拟过,所以对链表不再多赘述,集合框架中LinkedList类底层就是使用双链表实现的,因此在Java中可以使用LinkedList对象来使用链表,如果对链表不了解,可以去博主数据结构与算法专栏了解。原创 2022-01-20 22:52:19 · 1325 阅读 · 24 评论 -
【JavaSE系列】Java集合框架之包装类,ArrayList与迭代器
本篇文章带大家认识Java集合——ArrayList,在Java中ArrayList就是顺序表,底层是利用数组实现的,在博主历史文章中已经对顺序表进行了模拟实现,所以本篇文章会以ArrayList的简单模拟实现引出泛型和包装类,为后续泛型开一个小头,除此之外还会介绍Java中ArrayList类,以及迭代器。原创 2022-01-18 14:51:17 · 678 阅读 · 19 评论 -
数据结构与算法之双链表
本篇文章带大家认识数据结构与算法之双链表,链表是一种在逻辑结构连续,物理结构不连续的数据结构,可以分为单链表与双链表两类,正文将介绍双链表的增删查改,对于链表的概念已经在《数据结构与算法之单链表》一文中已经介绍过了,所以本文对于链表理论概念方面不再赘述,上次实现了不带头结点的单链表,这次就介绍一个带头的双链表吧!描述代码:Java。原创 2021-11-26 21:52:07 · 1243 阅读 · 26 评论 -
数据结构与算法之单链表
本篇文章带大家认识数据结构与算法之单链表,链表是一种在逻辑结构连续,物理结构不连续的数据结构,可以分为单链表与双链表两类,正文将介绍单链表的增删查改,双链表在后续博文中详细介绍。描述代码:Java。原创 2021-11-16 13:05:11 · 596 阅读 · 26 评论 -
数据结构与算法之顺序表
本篇文章带大家认识数据结构与算法基础,顺序表(动态),所谓的顺序表本质就是数组,它的特点是物理结构与逻辑结构都是连续的,最大的优点就是能够随机访问,最大的缺点是空间有限,就算扩容,也有可能存在大量的内存浪费。描述代码:Java。原创 2021-11-10 22:23:34 · 6450 阅读 · 16 评论 -
数据结构与算法之时间复杂度与空间复杂度
本篇文章带大家认识数据结构与算法基础,时间复杂度与空间复杂度。算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。描述代码:Java。原创 2021-11-06 23:37:31 · 1619 阅读 · 19 评论 -
栈和队列介绍与基本功能从理论到实践
1.栈1.1栈的概述1.2栈的几个概念1.3栈的特点1.4栈的例题1.5栈基本功能1.6栈的分类2.队列2.1队列概述2.2队列几个概念2.3队列特点2.4队列基本功能2.5队列的分类2.6链队基本功能实现头文件......原创 2021-07-17 12:30:21 · 1806 阅读 · 9 评论 -
双链表的增删查改实现(c语言描述)
内容导读1.什么是双链表1.1 双链表概述1.2循环链表1.3双链表的优点2.双链表的定义以及常见功能的实现2.0双链表定义以及常见功能头文件2.1双链表定义(声明)2.2双链表内存申请及扩容2.3双链表初始化2.4双链表的打印2.5双链表的插入与删除操作理论2.6双链表头插操作代码实现2.7双链表尾插操作代码实现2.8双链表的位置pos(已知)前插入操作代码实现2.9双链表的头删操作代码实现2.10双链表尾删操作代码实现2.11双...原创 2021-07-12 13:22:00 · 607 阅读 · 2 评论 -
单链表增删查改的实现(c语言描述)
内容导读(一) 链表的概念(二)单链表增删查改的实现单链表增删查改头文件声明说明单链表的特点单链表新结点的申请单链表的插入操作单链表结点的删除单链表元素查找与替换单链表的打印单链表的销毁单链表的长度单链表的整体创建原创 2021-06-16 13:15:00 · 826 阅读 · 1 评论