10 基于数组实现数据结构
很显然数组带来很大的好处,直接的好处有几点,第一它是一块完整的连续的内存而且只需要一次性分配,第二数组本身访问效率很高,第三我们可以对数组进行复制,因为数组只有一块内存,我只要把这一块的内存完整复制就可以了,而其他的很多复合结构可能有多块内存组成的,我们想复制的时候并不容易。比如切片还好点只有两块内存,比如像链表可能有很多块内存,我们想复制一个链表的时候我们得遍历一块一块的复制,所以数组先天性的具备了性能上的优势,我们承认数组在操作上的确有很多麻烦,但数组的性能不能忽略。接下来我们做的是能不能用数组实现常用的数据结构。第一我们使用数组带来的性能优势,第二把数组转换为另外的访问方式带来操作上的便利性。把这两者结合起来,因为直接操作数组的很多时候比较麻烦,比如我们插入、删除这些操作不特别方便。所以我们接下来把数组和其他数组结构访问上的便利性结合起来。
10 栈(Stack)
栈是很典型的先进后出(FILO)数据结构。其实我们在前面接触很多的栈,调用堆栈本身就是一个栈结