5 数据结构

在上一章中,我们讨论了可以通过struct关键字定义的组合类型,正则表达式,模式匹配,元组,runes,字符串,unicodestrings包,之后我们开发了一个简单的key-value存储。但是有时候编程语言提供的这些结构不适合一些特定的问题。有些时候我们需要自己创建的数据结构,以便以准确,专业的方式去存储,搜索,接收数据。因此,本章将介绍在Go中开发和使用众所周知的数据结构,包括二叉树,链表,散列表,堆栈和队列以及了解它们的优点。由于没有比图像更好地描述数据结构,因此本章将会看到许多图解!本章最后一部分将讨论随机数的生成,它将会帮你生成难以猜测的密码!下面是本章的内容概览:

  • 图和节点

  • 分析算法复杂度

  • Go的二叉树

  • Go的哈希表

  • Go的链表

  • Go的双端链表

  • Go的队列

  • Go的栈

  • Go标准库container包提供的数据结构

  • Go生成随机数

  • 构建随机字符串用作难以破解的密码