Go数据结构之集合

2017-12-09
阅读 5 分钟
3.5k
一、什么是集合 集合就是不同对象的无序聚集。那么链表和集合有什么关系呢?我们来变个魔术。如下图是各种颜色组成的链表: 下面我们一步步把链表变成集合。第一步砍去链接 第二步去掉重复 第三步放到一个框里摇一摇就成集合了 可以看出集合有这些特点: 无序:链表去掉链接,就是去掉元素间有序状态。 不重复:去掉重复...

Go数据结构之队列

2017-11-27
阅读 1 分钟
6.4k
数据结构里的队列就是模仿现实中的排队。如上图中狗狗排队上厕所,新来的狗狗排到队伍最后,最前面的狗狗撒完尿走开,后面的跟上。可以看出队列有两个特点:(1) 新来的都排在队尾;(2) 最前面的办理业务后离队,后面一个跟上。根据特点,计算机砖家就归纳以下队列结构。

Go数据结构之栈

2017-11-16
阅读 2 分钟
6.4k
一、什么是栈 这是杭州地铁1号线线路图。大卫哥考考大家,地铁列车如何调头? 我也不卖关子了,列车通常是用“人字轨道”来变换车道。 列车先从A轨道开进“人字轨道”里,再从B轨道开出。从A轨道开进去的时候1号车厢是车头,从B开出来的时候4号车厢就变成车头了。所以大家看到地铁前后各一个车头。“人字轨道”有个特点:先进...

循环链表的Go语言实现

2017-11-10
阅读 3 分钟
6.1k
循环链表的节点形成一个圈。把单链表的尾巴指向开头形成单循环链表。把双向链表的尾巴与开头链接起来就形成双向循环链表。使用循环链表可以不断的绕圈寻找所需要的数据,而不需要像单链表那样每次都从开头开始寻找,可以提高查询的效率。

双向链表的GO语言实现

2017-11-09
阅读 4 分钟
6.5k
和单链表比较,双向链表的元素不但知道自己的下线,还知道自己的上线(越来越像传销组织了)。小煤车开起来,图里面可以看出,每个车厢除了一个指向后面车厢的箭头外,还有一个指向前面车厢的箭头(车头、车尾除外)。车头只有指向后面车厢的箭头,车尾只有指向前面车厢的箭头。

第一节 如何用Go实现单链表

2017-10-27
阅读 5 分钟
11.7k
每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据。前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车厢,却不知道前面是哪节车厢拉的自己。第一节车厢没有任何车厢拉它,我们就叫它车头,第五节车厢后面拉其他车厢,我们称为车尾。