数据结构及算法
红酒小火炉
这个作者很懒,什么都没留下…
展开
-
队列初相识
什么是队列栈是先进者后出,后进者先出,而队列是先进者先出,对于在内存中如何存储并没有要求,如果通过数组来实现叫做顺序队列,如果通过链表实现,则叫做链式队列,可以看出上图就是顺序队列,就好比地铁过安检时,每个人排队,依次进入检查顺序队列队列的特点是先进者先出,所以需要两个指针,一个指针指向第一条数据,另一个指向最后一条数据因为数组创建时便已经指定大小,所以顺序队列的存储空间有限,为了提高空间的利用率,每当有出对操作时,我们可以进行数据搬移但是如果频繁的进行数据搬移,会使得性能降低,所以当没有原创 2020-11-16 09:09:00 · 80 阅读 · 0 评论 -
栈初相识
什么是栈数据结构中栈的特点是先进者后出,后进者先出,对于在内存中如何存储并没有要求,如果通过数组来实现叫做顺序栈,如果通过链表实现,则叫做链式栈,可以看出上图就是顺序栈.栈只支持两个基本操作:入栈 push()和出栈 pop()。顺序栈因为栈的特点是先进者后出,后进者先出,所以需要一个指针记录最后入栈的数据public class ArrayStack<E> { private E[] items; // 数组 private int count; // 栈中元素原创 2020-11-16 09:08:44 · 98 阅读 · 0 评论 -
ArrayList PK LinkedList
ArrayList和LinkedList,这两个集合大家都不陌生.尤其是ArrayList,可以说是日常开发中用的最多的容器了.而且这两个集合的知识点几乎可以说面试必问的.ArrayList ArrayList是List接口的一个实现类,底层是基于数组实现的存储结构,数据都是存放到一个数组中.所以ArrayList的优缺点与数组大致相同,区别是ArrayList可以动态扩容优点缺点随机访问性强插入和删除效率低查找效率高可能浪费内存支持动态扩展Arra原创 2020-11-16 09:08:22 · 79 阅读 · 0 评论 -
链表初相识
什么是链表 我们知道数组需要一块连续的内存空间来存储数据,而链表恰恰相反,它并不需要连续的内存空间,它通过"指针"将零散的内存块连接起来使用,通常将内存块称为链表的“结点”.常见的链表结构单链表通常我们将头部称为头结点,把尾部称为尾结点.头结点用来记录链表的基地址,通过它我们可以遍历整个链表,而尾结点没有指向下一结点,而是指向了一个空地址null既然是存储数据,那就少不了插入和删除操作,与数组不同,链表的插入和删除不需要搬移数据,插入删除从图中可以看出链表的插入和删除操作,只需要改原创 2020-11-15 09:26:46 · 192 阅读 · 0 评论 -
数组初相识
什么是数组 看到这个问题时,想必答案已经在你脑中了吧.通俗的来说: 数组是用一组连续的内存空间,来存储一组具有相同类型的数据。 也可以说数组的作用是将相同类型的数据,存储在一组连续的内存空间中. 连续的内存空间:关键字连续,为什么需要连续的内存空间呢,难道不连续不可以吗? 根据《Java虚拟机规范》的规定,Java堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的,这点就像我们用磁盘空间去存储文件一样,并不要求每个文件都连续存放。但对于大对象(典型的如数组对象),多数虚拟机实现出于原创 2020-11-08 18:31:32 · 136 阅读 · 0 评论