现在才明白,其实最底层的数据结构是<addr,value>,按照存储介质是否连续、是否显示制定key又可以分为数组、链表和hash,其中数组可以认为是一种<index,arr[index]>,链表是<p,*p>,然后在这基础之上衍生出了一维的线性表、栈、队列,散列表,二维的树(平衡二叉树、红黑树、跳表),三维的图,还有就是各种数据结构灵活组合的数据结构,这里的跳表可以算是组合类型的,但是它的使用范围很多,所以划到了二维中。这些是存储
然后是算法:排序、分治、贪心、回溯、动态规划
第一次真正感觉到了数据结构和算法的关联,好神奇的感觉。至少现在觉得那些难记的算法、数据结构没那么困难了,多思考、实践总会能够像写代码般应用到实际中。