数据结构
一只勤奋的小猪
做到最好
展开
-
大话数据结构(一)——线性表顺序存储结构的java实现
在看《大话数据结构》的时候,里面诙谐的语言和讲解吸引了我,但是这本书是用C来实现的,但是作为一个手撸java的人就想着用java来实现一下这些数据结构,于是就有了这些大话数据结构之java实现。哈哈,感觉这样会让自己的理解加深不少。 好了,不多说啦,今天是实现线性表顺序存储结构...转载 2018-03-24 21:05:49 · 301 阅读 · 0 评论 -
数据结构(二)--- 线性表链表(单链表)java实现方式
线性表的链式存储结构:所有元素不考虑相邻位置,哪有空位置就到那里,而只是让每个元素知道它下一个元素的位置在那里,这样,我们可以在第一个元素时,就知道第二个元素的位置(内存地址),而找到它;在第二个元素时,再找到第三个元素的位置,这样所有的元素就可以通过遍历而找到。 链表中的第一个结点的存储位置叫做头指针,最后一个结点的指针为空 在单链表的第一个结点前附设一个结点,称为头结点 单链...原创 2018-03-25 14:42:27 · 301 阅读 · 0 评论 -
大话数据结构--图的遍历-java实现
图的遍历分为深度优先遍历和广度优先遍历总结下图的遍历:深度优先遍历 就像一棵树的前序遍历 A B C D E F G H A 1 1 B 1 1 1 C 1 1 1 D 1 1 1 E 1 F 1 1 G 1 ...原创 2018-04-08 12:18:35 · 295 阅读 · 0 评论 -
大话数据结构--图的最小生成树-java实现
普利姆(Prim)算法 最小生成树 * A * / | \ * B- -F- -E * \ / \ / * C -- D * A B C D E F * 0 1 2 3 4 5 * * A-B 6 A-E 5 A-F 1 * B-C 3 B-F 2 * C-F 8 C-D 7 * D-F 4 D-E 2 ...原创 2018-04-08 13:09:17 · 448 阅读 · 0 评论 -
数据结构(三)——单向循环链表的java实现
单向循环链表结构就是链表的最后一个指针不再是null,而是指向整个链表的第一个结点,使链表形成一个环。 上代码package likend;/** * Created by yxf on 2018/3/27. * 单向循环链表 */public class CycleLink<T> { private Node header; //链表头结点 ...原创 2018-03-27 16:11:33 · 1100 阅读 · 0 评论 -
大话数据结构(五)——栈的两种java实现方式
在我们生活当中经常会看到这样一种操作,比如我们往一个空羽毛球盒子里面放羽毛球(个人比较喜欢羽毛球,嘿嘿),放完后再将羽毛球一个一个取出的时候会发现,最先放进去的羽毛球往往最后才取出来,相反,最后放入的羽毛球往往最先取出。这个例子形象的说明了栈的操作方式,下面我们来看看什么是栈,以及栈的一些操作。那么什么是栈呢?栈就是限定在表尾进行插入和删除操作的线性表。我们将允许插入和删除的一端称为栈顶(to...转载 2018-03-27 16:17:40 · 197 阅读 · 0 评论 -
大话数据结构(四)——双向链表的java实现
在实现了单向链表后,我们在使用单向链表中会发现一个问题:在单向链表中查找某一个结点的下一个结点的时间复杂度是O(1),但是查找这个结点的上一个结点的时候,时间复杂度的最大值就变成了O(n),因为在查找这个指定结点的上一个结点时又需要从头开始遍历。 那么该如何解决这个困难呢?我们可以在单链表的每个结点中,再设置一个指向前驱结点的指针域,这就构成了双向链表。在双向链表中含有两个指针域,一个指向...转载 2018-04-05 19:51:59 · 158 阅读 · 0 评论