数据结构与算法
文章平均质量分 85
本专栏中我们一起学习与探讨数据结构与算法之美,我们对于常见的数据结构与算法进行详细介绍,还对其深入剖析与总结,以扎实我们的编程能力、提高逻辑思维能力~
码上Java
亲们,有什么问题不能及时回复,请加微信 ms-Java 找我 ,知无不言。
展开
-
队列: 排队买包子,还不允许插队的那种~
前言上一篇文章我们简单阐述了栈这个基本数据结构,我们知道了,栈最大的特点就是后进先出,以及入栈和出栈这两个基本的操作。今天我们再来学习与栈非常相似的另一个数据结构—队列,那么接下来我们看看队列到底是什么吧。队列是什么首先,当你看到队列这两个字的时候,你脑袋里面会不会联想到每天在早餐店排队买包子的场景呢?(什么?你不吃早餐),这个时候不考虑插队情况(拒绝插队,从你我做起)的话,那就是站在队列前面的人先买到包子,后来的人只能站在队尾等待,故先来的先买包子,也就是队列的先进先出。上面我们提到不能插队,这个原创 2021-08-01 23:52:09 · 391 阅读 · 1 评论 -
栈:一吃多就会吐的家伙~
前言前两篇文章中我们学习了线性表中的数组和链表,数组和链表是最基础的数据结构,很多数据结构的实现都是基于数据或链表的。那么今天我们一起学习一个非常简单的数据结构—栈。栈使用是非常广泛的,比如我们Java中函数的调用、浏览器中的前进与后退功能等都会用到栈。什么是栈先画张图,看看栈长什么样。如下图所示:从图中看到栈是有些特殊,对于栈的操作被限制只能在栈的一端(栈顶)进行,也就是不允许在栈的中间进行数据操作,只能在栈顶进行数据操作(也就是插入和删除数据)。思考:“受限制”的栈有什么用呢?特定的数原创 2021-07-25 22:38:57 · 148 阅读 · 0 评论 -
链表:想写好链表代码可真要下点功夫
前言上一篇文章我们探讨了数组这个非常基础的数据结构。对于数组,我们知道了数组在内存中是按照顺序存储并线性排列,所以具有“随机访问"的能力,但是对于删除和插入等操作却十分低效。今天我们一起探讨一个新的数据结构—链表,看看链表是什么?学习链表有什么用?链表是什么链表是一种非常重要的数据结构,应用的非常广泛,在写链表代码非常容易出错,所以面试中链表经常会被用来考察面试者的逻辑是否严谨。链表它不像数组,数组需要的是一块连续的内存空间来存储,而链表并不需要一块连续的内存你空间(也就是可连续也可不连续),它可原创 2021-07-19 15:04:51 · 121 阅读 · 4 评论 -
数组: 一种非常基础且重要的数据结构
前言数组是一种非常基础且重要的数据结构,很多复杂的数据结构都是基于数组实现的。深入理解数据的存储原理和特点,有利于我们在实际开发工作中,充分发挥数据的优势。数据是什么数组的定义:数组(Array)是一种线性表数据结构。它用一组连续的内存空间,存储一组具有相同类型的数据。在上面的定义中加黑的描述,我们可以发现数组的几个特点,分别是:线性表、连续的内存空间、相同类型的数据。如下图所示:数组因具有连续的内存空间的特点,让数据拥有非常高效率的“随机访问”,但也是因为要保持这个连续的内存空间,导致数组在删原创 2021-07-14 23:04:26 · 407 阅读 · 1 评论