![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 70
用Java实现基本的数据结构,为以后的算法打基础
KinkinL
这个作者很懒,什么都没留下…
展开
-
单例模式实现及测试
对常见的几种单例模式的Java实现,附带测试单例模式的性质。原创 2021-05-10 21:27:00 · 2023 阅读 · 1 评论 -
数组和链表的Java实现
很多逻辑结构的底层实现都逃不出数组和链表这两个最基本的数据结构,比如我们熟悉的栈、队列等,就可以有数组和链表两种实现形式,它们反映的是数据在存储中的组织方式。以下是我自己所学做的总结,讲解以解释实现过程为主,不追求知识点的全面和严谨,就像一份记录实验过程的报告,难免有疏漏的地方,欢迎交流指正。数组数组指的是连续存储数据,好处是方便按索引查找元素。例如在内存中开辟一块内存地址连续的空间,地址0存放第一个元素,地址1存放第二个元素,地址2存放第三个元素……以此类推。我知道了数组的初始位置是0,待查找的是第五原创 2021-04-29 15:52:40 · 472 阅读 · 0 评论 -
Java实现循环队列的基本功能
队列是对类似排队现象的抽象,一头只能进数据,另一头只能出数据,遵守“先进先出”的规则。底层可以有顺序存储和链式存储两种实现方式,本文以顺序存储为例讲解并通过Java编程实现入队、出队的基本功能,考虑不周的地方欢迎讨论交流。顺序存储即按数组存储,特点是开辟的数组空间是定死的,一般不采取走一个元素就把所有元素往前挪一步的做法,而是让它们各自还在自己的位置上。队尾不断有元素加进来,队头有元素出队而产生空缺,这就造成一个问题,那就是可能会出现队尾到了数组末尾(队满),而队头实际上有空缺的现象(实际没满)。循环队列原创 2021-04-22 21:31:34 · 171 阅读 · 0 评论 -
Java实现栈的基本功能
本文使用Java语言实现了一个基本的栈结构。实现了判断空、判断满、入栈、出栈、查看栈顶元素几个基本功能,内容和大学教材差不多。适合作为入门。栈是一种“先进后出”的数据结构,不论是数组还是单链表实现,都是从栈顶压入数据,从栈顶弹出数据。一摞盘子是一个很形象的比喻,只能从顶部放盘子或拿盘子,这样导致最后放入的盘子最先被拿走。数组实现代码如下: private int[] stack; //栈 private int topPointer; //栈顶指针 private static原创 2021-04-21 16:12:19 · 250 阅读 · 0 评论 -
二分查找的Java实现(递归和非递归)
文章导航功能描述算法实现过程代码展示递归方法实现非递归方法实现后记功能描述二分查找仅针对有序排列(正序或倒序)的数组,通过比较中间元素和待查找元素的大小,从而确定下一步是在左半边还是右半边继续查找,直到找到要找的元素或者序列长度为0或1而不能再继续二分下去。这里采用在内存空间中连续存储的数组形式存储数据,方便快速定位中间元素而不需要从头遍历。程序结束之后给出待查找元素的位置信息或未找到该元素的信号。本文是我在学习二分查找实现过程中的总结,如果有不完善或错误的地方欢迎指正。算法实现过程为了方便划定查原创 2021-04-15 17:19:20 · 197 阅读 · 0 评论