
数据结构与算法
文章平均质量分 91
分享一些数据结构的内容,以及一些常见的算法
比奇堡的天没有云
不会画图的程序员不是一个好作家
展开
-
【数据结构与算法】二分查找
二分查找,又称折半查找,是一种在有序数据集合(通常为数组)中高效查找特定元素的算法。它充分利用了数据的有序特性,通过不断缩小搜索范围,快速定位目标值⭐注意前提条件:有序数据集合初始化:确定数据集的左右边界,通常是数组的起始索引(左边界)和终止索引(右边界)。计算中间位置:取左右边界的中间索引,通常通过取整除()得到。比较中间元素:将中间位置的元素与目标值进行比较:相等:找到目标值,返回中间位置作为其在数组中的索引。小于目标值:若数据集为升序排列,说明目标值可能位于中间位置的右侧。原创 2024-04-26 14:32:14 · 307 阅读 · 3 评论 -
【数据结构与算法】模拟实现ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。简单来说ArrayList的底层就是一个动态的顺序表。而顺序表的底层就是数组.因此要模式实现ArrayList就相当于基于数组实现一些操作,例如增删查改等。数据结构要求很严谨,所以有些东西会反复提到,不然很有可能出BUG.观感可能不太好,先说声抱歉!在解决数组满了这种情况之后,新增元素就很简单了.原创 2023-03-18 08:45:00 · 847 阅读 · 21 评论 -
【数据结构与算法】队列-模拟实现队列以及设计循环队列
队列是先进先出的数据结构,不要和栈记混淆了.掌握链表实现栈,以及循环队列的原理熟悉循环队列中什么情况下队列满了 出队和入队时 front和rear 怎么进行调整。原创 2023-01-29 14:54:09 · 611 阅读 · 0 评论 -
【数据结构与算法】详解二叉树以及模拟实现二叉树
二叉树在学习数据结构中是一种很重要的类型,也是学习数据结构中比较困难的一种结构,但是在平时用的也是非常多,因此二叉树尤为重要.本篇文章中会涉及到大量的递归代码,如果一些地方不太理解,可以尝试画图梳理代码执行流程关于文章中的二叉树源码→点击即可跳转需要的可以去看一看二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;原创 2023-01-21 12:34:25 · 1263 阅读 · 1 评论 -
【数据结构与算法】栈—模拟实现Stack和栈相关算法题
用数组模拟实现Stack,Stack相关的算法题,逆波兰表达式等等原创 2023-01-16 14:19:34 · 816 阅读 · 2 评论 -
【数据结构与算法】模拟实现LinkedList类
Java LinkedList(链表)类似于 ArrayList,是一种常用的数据容器。与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。LinkedList底层是一个双向链表,如下:一个双向链表有三个整数值:数值、向后的节点链接、向前的节点链接双向链表有头节点和尾结点。因此要实现双向链表,我们就要用类将双向链表的各个部分给抽取出来//数据域 public ListNode prev;原创 2022-12-09 18:44:16 · 566 阅读 · 1 评论 -
【数据结构与算法】详解单向无头非循环链表的基本操作
对于插入数据,只考虑插入位置的特殊性还是不够的,原创 2022-10-19 23:06:28 · 752 阅读 · 39 评论