經常使用數據結構
棧(Stack)
基本操做
基本特色
![](http://static.javashuo.com/static/loading.gif)
- 先進後出,後進先出。
- 除頭尾節點之外,每一個元素只有一個前驅和一個後繼。
隊列(Queue)
基本操做
基本特色
- 先進先出
- 只容許在隊列的後端(rear)進行插入操做,在前端(front)進行刪除操做
常見實現
- 單向隊列 - 使用鏈表做爲基本數據結構,不存在僞溢出問題,沒有長度限制,但插入和讀取的時間代價較高。
- 循環隊列 - 更簡單防止僞溢出,但隊列大小是固定的。
雙端隊列(deque,double-ended queue)
基本操做
- 頭部插入(push,cons)
- 尾部插入(inject,snoc)
- 頭部刪除(pop)
- 尾部刪除(eject)
- 查看頭部(peek first)
- 查看尾部(peek last)
基本特色
鏈表(Linked List)
基本操做
- 插入(O(1))
- 刪除(O(1))
- 查找(O(N))
基本特色
- 是一種線性表,但不會順序地存儲數據,而是在每一個節點存下下一節點的指針(Pointer)。
常見實現
跳躍列表(跳錶,Skip List)
![](http://static.javashuo.com/static/loading.gif)
散列表(Hash Table)
基本特色
- 以散列函數計算得到的值做爲關鍵字存取內存中的數據結構。
歡迎關注本站公眾號,獲取更多信息