資料結構(初級)
資料結構是以某種形式將資料組織在一起的集合,它不僅儲存資料,還支援訪問和處理資料的操作。演算法是為求解一個問題需要遵循的、被清楚指定的簡單指令的集合。下面會簡單的介紹一些資料結構和演算法,歡迎糾錯。
一、資料結構
1、雜湊表(Hash table)
Hash表也稱雜湊表,也有直接譯作雜湊表,Hash表是一種特殊的資料結構,它同陣列、連結串列以及二叉排序樹等相比較有很明顯的區別,它能夠快速定位到想要查詢的記錄,而不是與表中存在的記錄的關鍵字進行比較來進行查詢。
這個源於Hash表設計的特殊性,它採用了函式對映的思想將記錄的儲存位置與記錄的關鍵字關聯起來,從而能夠很快速地進行查詢。
也就是說,雜湊表的結構就是以鍵-值(key-value)這樣一種對映來儲存資料,這樣當我們需要查詢時只要輸入key,就可以查詢到相對應的值。
這是對於簡單的鍵的情況。當我們處理更加複雜的型別的鍵的時候就會涉及到處理多個鍵被雜湊到同一個索引值的情況,也就是我們要學習如何處理雜湊碰撞衝突,由於還沒深入學習,這裡就先不涉獵了。
2、佇列(Queue)
先進先出
在隊尾插入元素,在隊首刪除元素
就像排隊一樣,在佇列中先進來排隊的人也就是隊首的先出去,而新來的人想要排隊也只能從隊尾開始。
var q = [] //空隊// 進隊q.push('檸萌')1q.push('曹玫')2q.push('項焦')3// 出隊q.shift()'檸萌'q.shift()'曹玫'q.shift()'項焦'
3、棧(Stack)
先進後出
限定僅在表尾進行插入和刪除操作
我們把允許插入和刪除的一端成為棧頂,另一端稱為棧底,不含任何資料元素的棧稱為空棧。
就像盜夢空間,我們依次進入第一層夢,第二層夢,第三層夢,退出時也只能先退出第三層夢,再退出第二層,第一層。
var stack = []// 進棧stack.push('第一層夢')1stack.push('第二層夢')2stack.push('第三層夢')3// 出棧stack.pop()"第三層夢"stack.pop()"第二層夢"stack.pop()"第一層夢"
4、連結串列(Linked list)
連結串列是物理儲存單元上非連續的、非順序的儲存結構,資料元素的邏輯順序是透過連結串列的指標地址實現,有一系列結點(地址)組成,結點可動態的生成。
結點包括兩個部分:一、儲存資料元素的資料域(記憶體空間),二、儲存指向下一個結點地址的指標域。
實現資料元素的儲存按一定順序儲存,允許在任意位置插入和刪除結點。
c/c++/jave都可以實現
image
5、樹(tree)
樹是由n(n>=1)個有限節點組成一個具有層次關係的集合。
特點:
每個節點有零個或多個子節點;
沒有父節點的節點稱為根節點;
每一個非根節點有且只有一個父節點;
除了根節點外,每個子節點可以分為多個不相交的子樹。
二叉樹:滿足每個節點最多兩個叉(Binary tree)
滿二叉樹:葉子全滿
每一層上節點數都是最大節點數
image
滿足i層,最多節點2^i, 所有層節點數即2^(i-1) - 1
完全二叉樹:除了最後一層,其餘層葉子均滿,最後一層或滿或右邊缺少連續若干節點。
image
作者:飢人谷_陳楊
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2817753/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初級資料結構資料結構
- 資料結構初識資料結構
- mysql innodb體系結構--初級MySql
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 山鬼的資料結構坑(初篇)資料結構
- 初識Oracle資料庫體系結構Oracle資料庫
- 初學資料結構--《資料結構》人民郵電出版社 2.1-2.2資料結構
- FHQ Treap小結(神級資料結構!)資料結構
- 資料結構初階--堆排序+TOPK問題資料結構排序TopK
- 資料結構之堆:初學只需一文資料結構
- zt_data block資料塊之物理結構初識BloC
- 結構化資料、半結構化資料和非結構化資料
- shell初級-----資料呈現方式
- 【資料結構篇】認識資料結構資料結構
- 資料庫知識整理 - 概述、資料模型、三級模式結構資料庫模型模式
- [譯文] 初學者應該瞭解的資料結構: Tree資料結構
- [譯文] 初學者應該瞭解的資料結構: Graph資料結構
- 資料結構小白系列之資料結構概述資料結構
- 資料結構?資料結構
- 資料結構資料結構
- 初識makefile結構
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 【資料結構與演算法】二分鐘初識樹資料結構演算法
- 資料結構初階--單連結串列(講解+類别範本實現)資料結構
- 資料結構初階--二叉樹介紹(基本性質+堆實現順序結構)資料結構二叉樹
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- 資料結構-棧資料結構
- 資料結構-堆資料結構
- 資料結構-集合資料結構
- 資料結構 - 字串資料結構字串
- 資料結構——列表資料結構
- Redis 資料結構Redis資料結構
- 資料結構——樹資料結構
- Redis資料結構Redis資料結構
- 資料結構-樹資料結構
- Java資料結構Java資料結構
- 資料結構---串資料結構
- 資料結構|前言資料結構