随笔:想写一本数据结构的书

Posted master-dragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随笔:想写一本数据结构的书相关的知识,希望对你有一定的参考价值。

早前的思考:https://doctording.blog.csdn.net/article/details/52744016

以及最近leetcode刷题看到如下一段话

冒泡排序,选择排序,插入排序,快速排序,堆排序,归并排序,希尔排序,桶排序,基数排序新年帮您排忧解难。
有向图,无向图,有环图,无环图,完全图,稠密图,稀疏图,拓扑图祝您新年宏图大展。
最长路,最短路,单源路径,所有节点对路径祝您新年路路通畅。
二叉树,红黑树,van Emde Boas树,最小生成树祝您新年好运枝繁叶茂。
最大流,网络流,标准输入流,标准输出流,文件输入流,文件输出流祝您新年顺顺流流。
线性动规,区间动规,坐标动规,背包动规,树型动归为您的新年规划精彩。
散列表,哈希表,邻接表,双向链表,循环链表帮您在新年表达喜悦。 O(1), O(log n), O(n), O(nlog n), O(n^2), O(n^3), O(2^n), O(n!)祝大家新年渐进步步高。

所以如何讲好一个数据结构:让普通人也可以理解,当然还要有运用和实践。基本上《数据结构》这门课程大学时候是放在面向对象之前就有教授的。其实可以把一个结构当作一个“对象”来介绍,如何介绍,有什么属性,有什么操作/功能,操作的时间空间复杂度,应用的场景,生活中的举例。各大算法平台,历届考研真题,如何图解分析,如何debug分析,它的扩展等等。总之有千百种方法来认识,应用,巩固…以达到真正的理解该“对象”

如何写书:

首先,是可以选定一门编程语言的(当然具体到代码可以附录不同编程语言版本),毕竟“纸上得来终觉浅,绝知此事要躬行”,有了语言则可以实践

其次,一个结构该如何讲解,我想了如下一些方面:

  1. 概念的介绍
  2. 举例生活的场景
  3. 认识基础的属性和操作
  4. 认识java中的该数据结构
  5. 如何自己手写实现该数据结构
  6. 一些简单的应用题:比如各算法平台的简单题,考研相关简单题目
  7. 一些难度较高的应用题
  8. debug图解一些题目分析
  9. 和其它数据结构的比较
  10. 可继续回归到生活如何应用,回归到程序世界什么场景用合适
  11. 一些扩展,一些此数据结构的故事
  12. 如何通俗的给外行人讲,是否可以有一些小游戏可以做做
  13. 最后总结

另外既然是写书,当然应该要有章节,如何循序渐进,如何对比前后,串联起整个章节来也是至关重要的

比如数组和链表介绍了,是否要扩展介绍

  1. 操作的对比
  2. 排序的对比
  3. 场景应用的对比
  4. 甚至可以继续扩展到hashMap不就有“数据+链表”的实现吗

等等。

总之这是个复杂的事情,需要有取舍,需要想想如何更通俗易懂,且能吸引人。

以上是关于随笔:想写一本数据结构的书的主要内容,如果未能解决你的问题,请参考以下文章

随笔:想写一本数据结构的书

随笔:想写一本数据结构的书

请推荐一本基础的SQL数据库的书

一本真正讲“大数据”处理思路的书

2017殚精竭力,2018宏图大业

随笔我为啥想写无关紧要的随笔?