要想知道什么是數據結構?首先得知道數據是什么?數據是對客觀事務的符號表示,在計算機科學中是指所有能輸入到計算機中并被計算機程序處理的符號總稱。那為何加上XX“結構”XX兩字?
數據元素是數據的基本單位,而任何問題中,數據元素都不是獨立存在的,它們之間總是存在著某種關系,這種數據元素之間的關系我們稱之為結構。
因此,我們有了以下定義:
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。
簡單講,數據結構就是組織,管理以及存儲數據的方式。雖然理論上所有的數據都可以混雜,或者糅合,或者饑不擇食,隨便存儲,但是計算機是追求高效的,如果我們能了解數據結構,找到較為適合當前問題場景的數據結構,將數據之間的關系表現在存儲上,計算的時候可以較為高效的利用適配的算法,那么程序的運行效率肯定也會有所提高。
常用的4種數據結構有:
集合:只有同屬于一個集合的關系,沒有其他關系。
線性結構:結構中的數據元素之間存在一個對一個的關系
樹形結構:結構中的數據元素之間存在一個對多個的關系
圖狀結構或者網狀結構:圖狀結構或者網狀結構。
數據存儲結構指的是邏輯結構在計算機存儲空間中的存放形式(也稱為物理結構)。一般來說,一種數據結構的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序存儲、鏈式存儲、索引存儲和哈希存儲等。
順序存儲:用一組地址連續的存儲單元依次存儲集合的各個數據元素,可隨機存取,但增刪需要大批移動。
鏈式存儲:不要求連續,每個節點都由數據域和指針域組成,占據額外空間,增刪快,查找慢需要遍歷。
索引存儲:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。檢索快,空間占用大。
哈希存儲:將數據元素的存儲位置與關鍵碼之間建立確定對應關系,檢索快,存在映射函數碰撞問題。