# 完结感想

~~~~ ~~~~ ~~~~ 耗时一年,我终于把这本《数据结构和算法分析 - C 语言描述》学完了,你说我学懂了没有?没有,完全没有!!!甚至可能前面都忘了,因为时间跨度太大了
~~~~ ~~~~ ~~~~ 在我看来,这本书压根就不是给小白用的,它是一堆论文文献得集合体,有时候挺浅显易懂得,有时候一点资料都没有就要你证明、写程序,虽然你可能会在参考文献或一些推荐的教科书找到,但是我不知道啊。当我学完时候,我感受不到喜悦感,只有如释重负的感觉,我又不是非科班的学生,没系统学过图论和统计学和摊还分析,要证明难度真的很。
~~~~ ~~~~ ~~~~ 下一步的规划,大概就是学一学引擎和图形学,我貌似对程序员的三大烂漫之一有点兴趣了。

# 推荐网站

若是有人看到这篇文章,就起个引导吧,我自己的证明我自己都不信,但好歹是我的思考啊。

  1. 谷歌搜索引擎 (必须要学会搜索)
  2. sci-hub (查文献的,很干)
  3. Geeksforgeeks (大部分数据结构和算法能找到,但以 C++ 为主)
  4. C 语言中文网 (强推,源代码都有)
  5. 代码随想录 (没用过,但卡哥大名如雷贯耳)
  6. 简书 (一般)
  7. 腾讯云开发社区 (有一部分代码挺实用的)
  8. 阿里云开发社区 (一般)
  9. 知乎 (一般)
  10. 哔哩哔哩 (一般)
  11. 博客园 (有一个谁知天空不死的大佬实现了很多数据结构和算法)
  12. Infoq (总体一般,红黑树的图解我是在那找的)
    以上就是我学数据结构与算法分析使用的网站。

# 参考文章

不是很全,有些取消收藏了。学的时候只收藏忘记整理了,所以会很乱。

# 数据结构可视化

Graph Editor
数据结构和算法动态可视化

# 二叉查找树

(65 条消息) 二叉查找树的游标实现
(65 条消息) 二叉查找树的平均深度
【C 语言】打印二叉树树形(制表符实现,清晰 + 高拓展)
C 语言 二叉树图像打印
二叉树的层次遍历及应用
二叉树控制台可视化
(72 条消息) C 语言简单直观打印二叉树
【代码 + 注释】求二叉树的深度【超详细】递归 + 非递归实现

# B 树

原 B 树 C 语言代码实现
Deletion from a B-tree
Insert Operation in B-Tree
小白专场:树的同构 - C 语言实现 2. 程序框架、建树及同构判别

# KD 树

K Dimensional Tree | Set 1 (Search and Insert)
K Dimensional Tree | Set 2 (Find Minimum)
K Dimensional Tree | Set 3 (Delete)
k-d tree 算法

# 线索二叉树

Threaded Binary Tree - GeeksforGeeks
Double Threaded Binary Search Tree - GeeksforGeeks
Threaded Binary Search Tree | Deletion - GeeksforGeeks

# AVL 单双旋转

数据结构 4_AVL 树_单旋转_哔哩哔哩_bilibili
数据结构 4_AVL 树_双旋转 1_哔哩哔哩_bilibili
数据结构 4_AVL 树_双旋转 2_哔哩哔哩_bilibili
AVL 树的旋转图解和简单实现
AVL 树的旋转操作详解
【数据结构】 伸展树详解(SplayTree)(可视化工具) - codingriver blog

# 散列

计算使用线性探测、平方探测以及双散列插入的长随机序列所需要的冲突次数
搞懂 C 语言动态分配内存给一维数组和二维数组

#

Leftist Tree / Leftist Heap - GeeksforGeeks
Skew Heap - GeeksforGeeks
双端优先队列 - Wikiwand
二项堆 (一) 之 图文解析 和 C 语言的实现 - 如果天空不死 - 博客园
(39 条消息) 希尔排序增量序列简介_Foliciatarier 的博客 - CSDN 博客_增量序列

# 不相交集

数据结构 - 9 - 并查集(不相交集) - CofJus - 博客园
并查集(不相交集)的路径平分 - 极客锋行 - 博客园

#

拓扑排序 (完整案列及 C 语言完整代码实现)
无向图求割点和割边 ——Tarjan 算法 - 简书
强连通分量 | Forec's Notes
有向图强连通分量的 Tarjan 算法
Tarjan - Rosetta Code
Tarjan's Algorithm to find Strongly Connected Components - GeeksforGeeks
图的割点、桥和双连通分支的基本概念 - 腾讯云开发者社区 - 腾讯云
Hierholzer's Algorithm for directed graph - GeeksforGeeks
Eulerian path and circuit for undirected graph - GeeksforGeeks
图遍历的应用之寻找欧拉回路_不完全解答的博客 - CSDN 博客_深度优先搜索找欧拉回路
欧拉回路(hierholzer 算法)_run around 的博客 - CSDN 博客_欧拉回路算法
从农夫过河问题理解顶点覆盖、团和独立集_zhang35 的博客 - CSDN 博客_团和顶点覆盖

# 算法设计技巧

2021-01-04 霍夫曼编码最优性的一个简单证明概述 - 简书
哈夫曼实现文件压缩解压缩(c 语言)- 云社区 - 华为云
哈夫曼实现文件压缩解压缩(c 语言) - 腾讯云开发者社区 - 腾讯云
哈夫曼 Huffman 编码压缩与解压缩(源码) - 知乎
哈夫曼编码与文件压缩 - 简书
基于哈夫曼编码的压缩解压程序(C 语言) - keke2048 - 博客园
C Program to Implement First Fit Decreasing for 1-D Objects and M Bins - Sanfoundry
Bin Packing Problem (Minimize number of used Bins) - GeeksforGeeks
Bin Packing problem
C 语言分治 (1)___平面最近点对问题_YzlCoder 的博客 - CSDN 博客
c 语言 最近点对问题(分治法 + 递归)_德林恩宝的博客 - CSDN 博客_c 语言最近点对问题
平面最近点对的分治做法及其证明_GGN_2015 的博客 - CSDN 博客
最近点对问题 C 语言源代码_coder613 的博客 - CSDN 博客_最接近点对问题 c 语言
仅用三次实数乘法完成复数相乘的运算 - NewRookie - 博客园
DP 之矩阵连乘问题 - 阿里云开发者社区
0010 算法笔记 ——【动态规划】矩阵连乘问题_风仲达的博客 - CSDN 博客
Ch9.8_动态规划算法(优化二叉搜索树)_算法设计与分析 Python_哔哩哔哩_bilibili
跳跃表 C 语言实现 - 云社区 - 华为云
跳跃表的构造思路和基本操作 | 春水煎茶 - 王超的个人博客
第十章回溯算法 (收费公路重建问题)_红尘不染的博客 - CSDN 博客_收费公路重构问题
Alpha-Beta 剪枝算法 (极大极小算法 - 人工智能)_哔哩哔哩_bilibili
(41 条消息) 基于极大极小算法和 alpha-beta 剪枝实现 AI 井字棋_yqtaowhu 的博客 - CSDN 博客_井字棋极大极小算法
维诺图(Voronoi Diagram)分析与实现 - 腾讯云开发者社区 - 腾讯云

# 摊还分析

斐波那契堆 (一) 之 图文解析 和 C 语言的实现 - 如果天空不死 - 博客园

# 高级数据结构

红黑树快速入门 - 04 删除_哔哩哔哩_bilibili
30 张图带你彻底理解红黑树 - 简书
红黑树 - 维基百科,自由的百科全书
通俗易懂的红黑树图解 (上)_语言 & 开发_政采云前端团队_InfoQ 精选文章
通俗易懂的红黑树图解 (下)_文化 & 方法_政采云前端团队_InfoQ 精选文章
红黑树算法和应用 (更高级的二叉查找树)
1-2-3 skip list 确定性跳跃表的实现 - 阁子 - 博客园
Deterministic_Skip_Lists.pdf
yfismine/1-2-3-DeterminSkipList: 1-2-3 DeterminSkipList
AA 树_zhaojj1988 的博客 - CSDN 博客
树堆(Treap)图文详解与实现 - 腾讯云开发者社区 - 腾讯云
跳跃表的推导和数学证明_spark man 的博客 - CSDN 博客_跳跃表证明