數據結構中的邏輯結構(附上c++中的常見數據結構的邏輯結構)

 

最近在學習數據結構,有必要對自己這兩天的學習做一個總結,今天就來總結下,數據結構的邏輯結構

按照分類標準的不同,我們把數據結構分爲邏輯機構和存儲結構,今天主要講解邏輯結構

邏輯結構:是指數據對象中的數據元素之間的相互關係,主要分爲以下四種結構

1.集合結構

集合結構中的數據元素處理同屬於一個集合裏,它們之間沒有其他關係。各個數據元素是“平等”的,它們的共同屬性是“同屬於一個集合”。數據結構中的集合關係就類似於數學中的集合,滿足集合的三個基本性質,確定性,互異性,無序性,而滿足這個性質的應該只有C語言裏的結構體滿足這個條件,因爲結構體裏的數據無序,互異,確定。

 2.線性結構

線性結構中的數據元素之間存在一對一的關係,滿足這個關係的有  線性表(數組,vector,鏈表),隊列,棧,串

下面具體解釋下原因:先看定義

線性表:零個或者是多個數據元素的有限序列。

下面對其定義進行下充分的解讀,首先它是一個序列,也就是說元素之間是有順序的,若元素存在多個,則第一個元素無前驅,最後一個元素無後繼,其他每個元素都有且之後一個前驅和後繼。然後線性表強調是有限的,當元素個數爲零個時稱爲空表。

所以線性表的元素之間是滿足一對一的關係的

棧:棧(stack)是限定僅在表尾進行插入和刪除操作的線性表,是一種特殊的線性表,所以屬於線性結構

隊列:隊列(queue)是隻允許在一端進行插入操作,而在另外一端進行刪除操作的線性表,是一種特殊的線性表,所以屬於線性結構

串:串(string)是由零個或者多個字符組成的有限序列。

看定義我們就能清楚的看到,串是特殊的線性表,只是把定義中的數據元素換成了特定的字符元素,所以串也是屬於線性結構

一般情況下,把棧,隊列,串,分爲一組叫受限線性表。

3.樹形結構

樹形結構中的數據元素之間存在一種一對多的層次關係,一般分爲一般樹和二叉樹,滿足這個關係的有 set,map

4.圖形結構

圖形結構的數據元素是多對多的關係,一般分爲有向圖和無向圖,

最後可以畫一個思維導圖進行下總結

由於暫時沒有找到之前畫的圖,這裏有一處錯誤更正,集合的常見結構不是結構體,結構體本身不算是數據結構,因爲結構體裏存放的不是相同的數據元素,這裏的集合應該是哈希表,又叫散列表。

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