最近在學習數據結構,有必要對自己這兩天的學習做一個總結,今天就來總結下,數據結構的邏輯結構
按照分類標準的不同,我們把數據結構分爲邏輯機構和存儲結構,今天主要講解邏輯結構
邏輯結構:是指數據對象中的數據元素之間的相互關係,主要分爲以下四種結構
1.集合結構
集合結構中的數據元素處理同屬於一個集合裏,它們之間沒有其他關係。各個數據元素是“平等”的,它們的共同屬性是“同屬於一個集合”。數據結構中的集合關係就類似於數學中的集合,滿足集合的三個基本性質,確定性,互異性,無序性,而滿足這個性質的應該只有C語言裏的結構體滿足這個條件,因爲結構體裏的數據無序,互異,確定。
2.線性結構
線性結構中的數據元素之間存在一對一的關係,滿足這個關係的有 線性表(數組,vector,鏈表),隊列,棧,串
下面具體解釋下原因:先看定義
線性表:零個或者是多個數據元素的有限序列。
下面對其定義進行下充分的解讀,首先它是一個序列,也就是說元素之間是有順序的,若元素存在多個,則第一個元素無前驅,最後一個元素無後繼,其他每個元素都有且之後一個前驅和後繼。然後線性表強調是有限的,當元素個數爲零個時稱爲空表。
所以線性表的元素之間是滿足一對一的關係的
棧:棧(stack)是限定僅在表尾進行插入和刪除操作的線性表,是一種特殊的線性表,所以屬於線性結構
隊列:隊列(queue)是隻允許在一端進行插入操作,而在另外一端進行刪除操作的線性表,是一種特殊的線性表,所以屬於線性結構
串:串(string)是由零個或者多個字符組成的有限序列。
看定義我們就能清楚的看到,串是特殊的線性表,只是把定義中的數據元素換成了特定的字符元素,所以串也是屬於線性結構
一般情況下,把棧,隊列,串,分爲一組叫受限線性表。
3.樹形結構
樹形結構中的數據元素之間存在一種一對多的層次關係,一般分爲一般樹和二叉樹,滿足這個關係的有 set,map
4.圖形結構
圖形結構的數據元素是多對多的關係,一般分爲有向圖和無向圖,
最後可以畫一個思維導圖進行下總結
由於暫時沒有找到之前畫的圖,這裏有一處錯誤更正,集合的常見結構不是結構體,結構體本身不算是數據結構,因爲結構體裏存放的不是相同的數據元素,這裏的集合應該是哈希表,又叫散列表。