數據結構的簡單理解(4)

總結:
數據的邏輯結構、數據的存儲結構及數據的運算這三方面是一個整體。孤立地去理解一個方面,而不注意它們之間的聯繫是不可取的。

邏輯結構可以分爲:線性結構和非線性結構。
對於一些現實數據項,在討論其數據結構時我們一般先看其邏輯結構是怎樣的,如果這些數據項是線性結構即每個數據項只有一個前驅節點並且只有一個後繼結點,則我們在邏輯結構中的線性結構中尋找合適的數據結構對其進行處理(比如線性表,棧、隊列等等);如果這些數據項是非線性結構即每個數據項不止有一個前驅或者後繼,這時我們就要在邏輯結構中的非線性結構中尋找合適的數據結構對其進行處理(比如圖、集合等等)。

存儲結構可以分爲:順序存儲、鏈式存儲、散列存儲和索引存儲,其中數組作爲順序存儲的典型應用,鏈表作爲鏈式存儲的典型應用。
在確定了數據所採用的邏輯結構之後,接下來就要對其進行存儲,基本的存儲方式有數組和鏈表兩種,用這兩種存儲方式能夠實現大部分數據的存儲,不管是線性結構或者非線性結構。
存儲結構是數據結構不可缺少的一個方面:同一邏輯結構的不同存儲結構可冠以不同的數據結構名稱來標識。

【例】線性表是一種邏輯結構,若採用順序方法的存儲表示,可稱其爲順序表;若採用鏈式存儲方法,則可稱其爲鏈表;若採用散列存儲方法,則可稱爲散列表。
數據的運算也是數據結構不可分割的一個方面。在給定了數據的邏輯結構和存儲結構之後,按定義的運算集合及其運算的性質不同,也可能導致完全不同的數據結構。

【例】若對線性表上的插入、刪除運算限制在表的一端進行,則該線性表稱之爲棧;若對插入限制在表的一端進行,而刪除限制在表的另一端進行,則該線性表稱之爲隊列。更進一步,若線性表採用順序表或鏈表作爲存儲結構,則對插入和刪除運算做了上述限制之後,可分別得到順序棧或鏈棧,順序隊列或鏈隊列。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章