一、链表的概念
为了方便同学们理解,我画了一个图:
上条是单向链表,下面是双向链表。
两者区别是啥呢?
从查找速度来讲,双向的会更快些,但是缺点也是占用空间大些。
所以如果项目里面对空间要求高的话,就用前者,回头用时间换空间。
按照逻辑结构来说,他们应该是一个挨着一个的,但是在实际存储当中并没有像这样连续,可能会散落在各个内存区里面。
关于链表的作用就不在这里赘述了,感兴趣的面向搜索引擎提问吧。
二、Go 里面的链表操作
go 的标准库里面其实为我们提供了一个链表功能,在我们的 container/list 包里面。
所以很多时候我们不需要再手动实现,可以这样使用:
他为我们提供了很多方法可以使用:
比如插入到最后面,还是哪个的后面,感兴趣的可以去详细看下。
上面的代码执行结果是:
二、一些常用操作
1、移动交换
假如我们需要调换 2 和 3 的位置:
我们可以使用他的 MoveAfter 方法进行移动。
执行结果:
2、插入
加入我们需要在 2 后面插入一个 2.5:
我们可以使用 InsertAfter 方法进行操作。
执行结果为:
更多的操作方法就不一一举例了哈。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !