首先,什麼是資料結構?
資料結構(data structure)是帶有結構特性的資料元素的集合,它研究的是資料的邏輯結構和資料的物理結構以及它們之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的結構型別。
簡而言之,資料結構是相互之間存在一種或多種特定關係的資料元素的集合,即帶「結構」的資料元素的集合。「結構」就是指資料元素之間存在的關係,分為邏輯結構和儲存結構。
有時候就經常會搞混……怎麼資料結構一會兒陣列啊 樹啊什麼的,一會兒鍊錶 ,棧和佇列。。 資料結構本來就分為邏輯和儲存,乙個邏輯的資料結構可以用不同的方式儲存。
指反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。邏輯結構包括:
1.集合:資料結構中的元素之間除了「同屬乙個集合」 的相互關係外,別無其他關係;
2.線性結構:資料結構中的元素存在一對一的相互關係;
3.樹形結構:資料結構中的元素存在一對多的相互關係;
4.圖形結構:資料結構中的元素存在多對多的相互關係。
資料的儲存結構,也就是物理結構,指的是資料的邏輯結構在計算機儲存空間的存放形式,在物理儲存空間上選擇集中存放還是分散存放。如果選擇集中儲存,就使用順序儲存結構;反之,就使用鏈式儲存。至於如何選擇,主要取決於儲存裝置的狀態以及資料的用途。
一般來說,一種資料結構的邏輯結構根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存、鏈式儲存、索引儲存和雜湊儲存等,所以,一種資料結構可表示成一種或多種儲存結構。
資料元素的機內表示(映像方法): 用二進位制位(bit)的位串表示資料元素。通常稱這種位串為節點(node)。當資料元素有若干個資料項組成時,位串中與個資料項對應的子位串稱為資料域(data field)。因此,節點是資料元素的機內表示(或機內映像)。
關係的機內表示:資料元素之間的關係的機內表示可以分為順序儲存和非順序儲存,常用兩種儲存結構:順序儲存結構和鏈式儲存結構。
順序儲存借助元素在儲存器中的相對位置來表示資料元素之間的邏輯關係;非順序儲存借助指示元素儲存位置的指標(pointer)來表示資料元素之間的邏輯關係。
線性資料結構:陣列、鍊錶都屬於線性列表。
鍊錶有單向鍊錶和雙向鍊錶。
列表是由資料項構成的有限序列。
棧和佇列是兩種特殊型別的列表
經常搞混…… 感覺一直都在補知識漏洞
資料結構筆記1
資料結構中關於線形表的描述,因為剛開始學也當是對大學未學這門課的補充吧,決定仔細學。沒想到一學還真發現自己程式設計中不少問題。首先對教材的理解上,重新拾起c語言。發現對結構定義和使用上存在盲點。對指象結構的指標既然不知。所以對can通訊 一知半解。現在回想起來有茅塞頓開的感覺。對於c程式設計中涉及到...
資料結構筆記1
資料結構 資料之間相互存在的一種或多種特定的關係的元素的集合 邏輯結構 資料物件中資料元素之間的相互關係 集合結構 線性結構 樹形結構 圖形結構 物理結構 順序儲存結構 特徵 美女來插隊 鏈式儲存結構 對不起,我是警察 抽象資料型別 資料型別 一組性質相同的值的集合及定義在此集合上的一些操作的總稱 ...
資料結構筆記1
演算法的定義 演算法是對特定的問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令呢都可儀表乙個或幾個操作呢。演算法的5個重要特性 有窮性,不能無邊無際永遠也解答不完哦 確定性,你得有確定的答案哦 可行性,如果不可行,那何必浪費時間計算呢 輸入,沒有輸入怎麼開始呢 輸出,沒有輸出計算又有和意義...