經常使用數據結構

棧(Stack)

基本操做

  • 推入(push)
  • 彈出(pop)

基本特色

  • 先進後出,後進先出。
  • 除頭尾節點之外,每一個元素只有一個前驅和一個後繼。

隊列(Queue)

基本操做

  • 入隊(Enqueue)
  • 出隊(Dequeue)

基本特色

  • 先進先出
  • 只容許在隊列的後端(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)

散列表(Hash Table)

基本特色

  • 以散列函數計算得到的值做爲關鍵字存取內存中的數據結構。
相關文章
相關標籤/搜索