
数据结构
文章平均质量分 87
巧克力小猫猿
前端开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
挑战全网最强数据结构期末复习帖
目录一,算法介绍1.1 算法特性1.2 算法设计的要求1.3 算法效率的度量方法二,算法时间复杂度2.1 定义及理解2.2 时间复杂度的推导三,函数调用的时间复杂度分析3.1 例题3.2 常见的事件复杂度3.3 最坏情况与平均情况四,算法的空间复杂度一,算法介绍1.1 算法特性算法的五个特性: 输入,输出,有穷性,确定性和可行性输入: 0个或多个输入,绝大部分算法输入参数都有必要。输出:至少有一个或多个输出算法一定要有输出。输出形式可以是打印式输出,也可以是返回一个值或者多个值。有穷性: 算法在原创 2022-01-03 12:01:22 · 1143 阅读 · 2 评论 -
数据结构6——二分搜索树
文章目录前言一.二分搜索树1.树的介绍2.二分搜索树1.节点,左孩子,右孩子2.主要特点二、基础方法详解1.Comparable2.成员变量3.基础方法及基础变量的定义三.主要方法详解1.以node为根向二分搜索树中添加新的元素2.看以node为根的二分搜索树中是否包含元素e3.寻找二分搜索树中的最小,最大元素4.元素的删除五.整体代码(含注释)总结前言二叉搜索树是最基础的树结构,本节将从最基础的代码及原理讲起,讲二分搜索树完整的呈现出来。欢迎关注。一.二分搜索树1.树的介绍树是一种数据结构,它是原创 2021-06-06 15:56:55 · 279 阅读 · 0 评论 -
数据结构5——单链表与双链表(超全)
文章目录前言一、链表1.单链表2.双链表二、单链表1.成员变量2.getSize()和isEmpty()3.链表的虚拟头节点1.什么是链表的虚拟头结点2.代码4.链表的基础方法1.向链表中添加节点2.链表中删除节点3.找到index处的元素4.查找是否有该元素5.知索引获取元素5.打印链表5.整体的代码实现三.双链表1.双链表的结构2.双链表的成员变量3.与单链表的不同之处1.双链表中增加元素2.双链表中删除元素4.整体代码实现总结前言本节讲述的是单链表与双链表基础方法的原理及实现,双链表将在单链表的原创 2021-06-06 11:31:06 · 2593 阅读 · 0 评论 -
数据结构3——队列
文章目录前言一、队列是什么二、方法及底层代码1.接口2.getSize()3.isEmpty()4.enqueue()5.denqueue()6.getFront()三.打印队列总结前言本文主要讲解的是队列的基础部分,包括其方法作用及其底层代码,底层代码是在数据结构1——动态数组的基础之上编辑出,重复文本本文中不再赘述。需要强调的是,java本身有自己的队列包,猿友们可以利用import java.Queue来使用基本方法动态数组一、队列是什么队列是一种特殊的线性表,特殊之处在于它只允许在表的原创 2021-06-06 10:12:27 · 197 阅读 · 0 评论 -
数据结构基础1——动态数组
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、动态数组是什么二、动态数组的基本成员变量1.E[] data2.size(数组长度)与数组容量(capacity)3.代码展示二.基础函数1.获取size,capacity,判断数组是否为空2.数组中添加元素3.数组中删除元素4.知索引查元素,知元素查索引5.修改索引处的元素三.动态数组的扩容与缩容1.为什么要扩容缩容2.扩容思路3.缩容思路4.resize逻辑及代码四.动态数组的打印五.整体代码总结1.动态数组为什么动态2原创 2021-06-05 20:16:28 · 305 阅读 · 0 评论 -
数据结构2——栈
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一.栈的介绍1.线性结构2.什么是栈二.方法介绍1.getSize()2.isEmpty()3.push()4.pop()5.peek()三.栈的底层代码(动态数组的基础上)1.接口2.入栈3.出栈4.读取栈顶元素四.整体代码总结前言动态数组本节是数据结构系列的第二篇——栈。栈结构将会向大家介绍几个基本方法的功能,主要讲述的是栈的基础算法,将在数据结构1的动态数组基础上编辑代码。猿友们可以点击链接查看。一.栈的介绍1原创 2021-06-05 21:48:14 · 152 阅读 · 0 评论