1、数组
数组是一个存储地址连续的有序集合。
按照下标查询的时间复杂度是O(1),从指定下标处直接取出来数据就行,就遍历一个元素。
插入和删除的时间复杂度为O(n),插入的时候比如在3和4中间插入一个元素,插入进去之后,需要把之前的元素4的索引变为5,后面的所有元素索引都需要变化。
删除的时间复杂度为O(n),删除一个元素之后,后面的所有元素都要前移一位。
其中的n可以理解为数组的长度。
2、链表
链表是一个存储地址不连续的有序集合,每一个节点分为引用地址和数据两部分,
插入数据的时间复杂度是O(n),需要从头部开始遍历,中间插入是把前一个元素的引用指向插入的这个元素A,元素A把引用指向下一个元素。
删除的时间复杂度是O(1),头部删除直接把元素的引用地址置为null,中间删除直接把需要删除元素的钱前一个元素的引用指向下一个元素;尾部删除即把倒数第二个元素的引用地址置为null。
3、栈
先进后出
4、队列
5、哈希
6、图(graph)
图是一些元素以及边的集合,图的顶点具有相对概念,没有具体的顶点。
通常图用(V,E)来表示。V=(V0,V1,V2,V3,V4),E={}
7、堆
8、树
待完善。。。
自己写的,不足之处请多多指正