数据结构的简单理解(4)
總結:
數據的邏輯結構、數據的存儲結構及數據的運算這三方面是一個整體。孤立地去理解一個方面,而不注意它們之間的聯系是不可取的。
邏輯結構可以分為:線性結構和非線性結構。
對于一些現實數據項,在討論其數據結構時我們一般先看其邏輯結構是怎樣的,如果這些數據項是線性結構即每個數據項只有一個前驅節點并且只有一個后繼結點,則我們在邏輯結構中的線性結構中尋找合適的數據結構對其進行處理(比如線性表,棧、隊列等等);如果這些數據項是非線性結構即每個數據項不止有一個前驅或者后繼,這時我們就要在邏輯結構中的非線性結構中尋找合適的數據結構對其進行處理(比如圖、集合等等)。
存儲結構可以分為:順序存儲、鏈式存儲、散列存儲和索引存儲,其中數組作為順序存儲的典型應用,鏈表作為鏈式存儲的典型應用。
在確定了數據所采用的邏輯結構之后,接下來就要對其進行存儲,基本的存儲方式有數組和鏈表兩種,用這兩種存儲方式能夠實現大部分數據的存儲,不管是線性結構或者非線性結構。
存儲結構是數據結構不可缺少的一個方面:同一邏輯結構的不同存儲結構可冠以不同的數據結構名稱來標識。
【例】線性表是一種邏輯結構,若采用順序方法的存儲表示,可稱其為順序表;若采用鏈式存儲方法,則可稱其為鏈表;若采用散列存儲方法,則可稱為散列表。
數據的運算也是數據結構不可分割的一個方面。在給定了數據的邏輯結構和存儲結構之后,按定義的運算集合及其運算的性質不同,也可能導致完全不同的數據結構。
【例】若對線性表上的插入、刪除運算限制在表的一端進行,則該線性表稱之為棧;若對插入限制在表的一端進行,而刪除限制在表的另一端進行,則該線性表稱之為隊列。更進一步,若線性表采用順序表或鏈表作為存儲結構,則對插入和刪除運算做了上述限制之后,可分別得到順序棧或鏈棧,順序隊列或鏈隊列。
總結
以上是生活随笔為你收集整理的数据结构的简单理解(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构的简单理解(3)
- 下一篇: 如何将本地代码使用Git上传至Githu