数据结构之常见的8种数据结构:
-数组Array
-链表 Linked List
-堆 heap
-栈 stack
-队列 Queue
-树 Tree
-散列表 Hash
-图 Graph
Linklist定义:
-是一种线性表,并不会按线性的顺序存储数据,即逻辑上相邻,物理上不一定相邻的元素。通过指针域来寻找对应的元素。
Linklist优缺点:
优点:
-插入、删除速度快
-灵活分配结点空间
缺点:
-查询速度慢
通过Linklist常用方法来深入底层原理
-add(E e)
-add(int index, E element)
-remove(Obeject o)
-remove(int index)
-ListIterator正向遍历
-反向遍历
总结:
-插入、删除速度快是因为只要通过前后指针就能插入或者删除到链表中,不需要移动其它元素,插入头尾节点更快,因为Node结构体中保存了头尾指针。
-查询速度慢是因为,查询先通过右位移运算来判断对链表是前半部分遍历还是后半部分遍历,剩下的半部分遍历则是一个个节点遍历,头尾查询快,因为保存了头尾指针。