数据结构与算法
央小木
这个作者很懒,什么都没留下…
展开
-
手写数组的底层实现(java实现)
打造属于自己的Array 查看JDK1.8中ArrayList源码时,其中的Arrays.copyOf为Native方法,具体怎么实现的并没有。所以打算自己实现,来深入了解一下Array这个数据结构。静态数组创建增删改查方法自己创建数组无非就是数组的 增删改查 方法的创建,即 add,remove,set,get 方法。首先创建一个简单的int集合来表示数组,默认...原创 2019-03-27 09:43:42 · 3438 阅读 · 0 评论 -
手写链表底层实现(java实现)
打造属于自己的链表 前面数组篇中的动态数组实现,以及基于数组实现的栈和队列,它们的底层依旧是依托于静态数组,靠的是resize来解决固定容量的问题。但是链表就不同了,他实现了真正的动态数据结构,通过指针的指向来实现元素之间的关系依赖。数组和链表的对比数组支持快速查询,是因为在创建数组的时候,在堆中创建了连续的空间。正因此,数组在插入和删除元素的时候可能需要开辟额外的空间,所以慢了。...原创 2019-04-18 09:54:44 · 4262 阅读 · 1 评论 -
手写栈和队列底层实现(java实现)
文章目录打造属于自己的栈和队列栈栈的应用实现一个栈的接口实现一个栈(基于数组)测试栈类队列实现一个数组队列实现一个循环队列数组队列与循环队列的比较打造属于自己的栈和队列 前一篇博客介绍了如何打造属于自己的数组,在实现数组的基础上,我们来完成对栈和队列的实现。栈在栈顶压栈在栈顶出栈栈的应用无处不在的Undo操作(撤销操作)程序调用的系统栈,函数A中调用另外的函数B,先将函数...原创 2019-10-08 14:47:20 · 753 阅读 · 6 评论