1. 程式人生 > >資料結構之邏輯結構與物理結構(儲存結構)

資料結構之邏輯結構與物理結構(儲存結構)

邏輯結構

邏輯結構分為四種類型:集合結構,線性結構,樹形結構,圖形結構。

所謂集合結構:表面意思,沒有什麼深刻意義,就是資料元素同屬一個集合,單個數據元素之間沒有任何關係。如下圖所示。

                                                         


線性結構類似於線性關係,也就是說,線性結構中的資料元素之間是一對一的關係。注意:重點在一對一。如下圖所示。


                                               

樹形結構:樹形結構中的資料元素之間存在一對多的關係。(各元素及元素關係所組成圖形類似於樹狀圖)。注意:關係為一對多。如下圖所示。


                                                    

圖形結構:資料元素之間是多對多的關係。如下圖所示。

     

                                        

總結以上幾點:用示意圖表示資料結構的邏輯關係時要注意:

1.將每一個元素看作為一個結點,用圓圈表示。

2.將各個元素之間的關係用結點之間的連線表示,如果該關係有方向,則用帶箭頭的連線表示。

物理結構:

物理結構又叫儲存結構,分為兩種,一種是順序儲存結構一種是鏈式儲存結構。

順序儲存結構是把資料元素放到地址連續的儲存單元裡面,其資料間的邏輯關係和物理關係是一致的。個人理解所謂順序是指相鄰資料元素間的地址連續。說白了就像排隊佔位置一樣,誰也不能插別人的隊。之前學習的陣列就是一種順序儲存結構。(如圖所示)

                                                  

順序儲存結構存在一定的弊端,就像生活中排隊是也會有人插隊也可能有人有特殊情況突然離開,這時候整個結構都處於變化中,此時就需要鏈式儲存結構。

鏈式儲存結構:是把資料元素存放在任意的儲存單元裡面,這組儲存單元可以是連續的也可以是不連續的。此時,資料元素之間並不能反映元素間的邏輯關係,因此在鏈式儲存結構中引進了一個指標存放資料元素的地址,這樣通過地址就可以找到相關聯資料元素的位置(如圖所示)。

                                                  

顯然鏈式結構比較靈活,資料存在哪裡並不重要,只要有一個指標存放了相應的地址,在通過地址就能找到相鄰元素啦。從這一點也能看到順序儲存結構和鏈式儲存結構最大的區別就是鏈式儲存結構引進了指標的概念,通過指標來儲存地址,從而通過地址來尋找相鄰元素。