Skip to content

qq570850096/awesome-go-datastruct

Repository files navigation

数据结构(go语言实现)

本项目是由一个在校本科生做的,所以文档方面,英文不会有了, 但是中文文档会尽力写的详细一些,希望大佬们觉得不错的话可以多多支持。

这个项目中会有那些数据结构呢?

  1. 单向链表(LinkedList)
    • 1.1 链表逆序
    • 1.2 移除重复项
    • 1.3 两链表表示的数字相加
    • 1.4 链表从中间反转
    • 1.5 遍历一次找到链表的倒数第k个节点
    • 1.6 发现带环链表的环入口点
    • 1.7 将单链表两两反转
    • 1.8 单链表的前k个元素反转
    • 1.9 合并两个单链表
    • 1.10 从单链表中移除一个节点
    • 1.11 检查两个单链表是否交叉
  2. 双向链表
    1. LRUCache
    2. LFUCache
    3. FIFOCache
  3. 无向图(Graph)
  4. 有向图
  5. 二分搜索树(BinarySearchTree)
  6. 优先队列(PriorityQueue)
  7. 哈希表(HashMap)
  8. 并查集 (Union Find)
  9. 线段树(SegmentTree)
  10. AVL树
  11. 字典树(Trie)
  12. 红黑树(Red-Black-Tree)
  13. 排序算法
    1. 冒泡排序
    2. 插入排序
    3. 选择排序
    4. 归并排序(自顶向下和自底向上)
    5. 快速排序(单路,随机化,双路,三路)
    6. 希尔排序

动态数组,栈,队列还有字典类型因为go语言本身就可以用slice和map这种内建类型非常方便的实现,这里就不做了。