什麼是資料儲存的物理結構呢?
如果把資料結構比作活生生的人,那麼物理結構就是人的血肉和骨骼,看得見,摸得
著,實實在在。例如我們剛剛學過的陣列和連結串列,都是記憶體中實實在在的儲存結構。
而在物質的人體之上,還存在著人的思想和精神,它們看不見、摸不著。看過電影
《阿凡達》 嗎?男主角的思想意識從一個瘦弱殘疾的人類身上被移植到一個高大威猛的
藍皮膚外星人身上,雖然承載思想意識的肉身改變了,但是人格卻是唯一的。
如果把物質層面的人體比作資料儲存的物理結構,那麼精神層面的人格則是資料儲存
的邏輯結構。邏輯結構是抽象的概念,它依賴於物理結構而存在。
下面我們來講解兩個常用資料結構:棧和佇列。這兩者都屬於邏輯結構,它們的物理
實現既可以利用陣列,也可以利用連結串列來完成。
在後面的章節中,我們會學習到二叉樹,這也是一種邏輯結構。同樣地,二叉樹也可
以依託於物理上的陣列或連結串列來實現。
網上很多文章介紹線性和非線性的時候,都只是給你舉例說哪些是線性結構 ,哪些是非線性結構,類似下圖這種:
摘自知乎:...
我覺得這裡的解釋就不嚴謹,元素之間存在一對一的線性關係,那雙向連結串列類,我可以對應前驅結點還有後繼結點,我覺得應該加上一句限制條件,
想起來一首歌詞好像,向前向後向上向下向左向右哈哈,單方向是一對一的關係就可以。這時候可能會說了,那樹類,比如二叉樹,如下圖所示:
我這裡將1,3葉子節點都看作是2的下方向的對應關係,就是1對2,所以樹不是線性關係,個人理解哈,歡迎大家交流學習一起進步嘻嘻。
前面部分內容摘抄自書籍小灰的演算法之旅