版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u012540337/article/details/80499226
最近總是被這兩個概念混淆,抽出時間捋了捋他們的概念、關係。希望對大家有用。
爲什麼要引入數據結構和數據類型的概念?
計算機只識別0和1。現在人給計算機發送圖片,語音,視頻,二級制文件。該怎麼辦呢?其實簡單一點的就是圖片(0101010101)、語音(01010101010101010101010),視頻(010101010101010110101001.......)二級制文件(010101010101...........)。取中間值假設定義一種簡單的數據(初始大小100000k),那發送1k的圖片需要初始化100000k,是不太浪費內存空間了。所以需要定義不同的數據,也就是不同的數據類型。
現在需要統計班級的成績,比如小紅-第一名,小明-第二名,小周-第三名...大家一下子想到了使用key-value這樣的集合去存儲這樣的數據。怎麼保證小紅,就能拿到第一名呢?怎麼保證數據過多,快速查找數據呢?刪除、增加數據,集合怎麼變動呢?這就需要數據結構去解決這些問題了。
一、概念
數據結構:計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關係的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。
數據類型:在數據結構中的定義是一個值的集合以及定義在這個值集上的一組操作。
二、分類
數據結構:數組、棧、隊列、鏈表、樹、圖、堆、散列表等。
數據類型:基本數據類型(byte、short、int、long、double、float、boolean、char),引用數據類型,(以JAVA舉例)
三、淺談不同
(1)數據類型定義了數據在計算機存儲的大小及數據的操作。比如int類型的數據,在計算機存儲是兩個字節的長度。
int類型有一些加、減、乘、除的操作。
數據結構定義了數據存儲及組織數據的方式。比如mysql數據庫索引,使用的是B+樹結構,提高了數據的檢索效率,減少了io的操作。
(2)數據類型是一類事物的集合,數據結構是一種解決問題的思想。
(3)數據類型中也會用到數據結構,如HashMap的低層結構是數組+鏈表+紅黑樹