本文借鑒點選跳轉 下一篇:順序表的使用
這裡寫自定義目錄标題
- 線性表
- 線性表的簡介
- 線性表的順序存儲和鍊式存儲
- 前驅和後繼
線性表
線性表的簡介
線性表又稱線性存儲結構,是最簡單的一種存儲結構,專門用來存儲邏輯關系為“一對一”的資料。
在一個資料集中,如果每個資料的左側都有且僅有一個資料和它有關系,資料的右側也有且僅有一個資料和它有關系,那麼這些資料之間就是“一對一“的邏輯關系。
舉個簡單的例子:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN4MTNzIWM4kzMhNDO0MWNzYzX2AzMyUDM5IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
如上圖所示,在 {1,2,3,4,5} 資料集中,每個資料的左側都有且僅有一個資料和它緊挨着(除 1 外),右側也有且僅有一個資料和它緊挨着(除 5 外),這些資料之間就是“一對一“的關系。
使用線性表存儲具有“一對一“邏輯關系的資料,不僅可以将所有資料存儲到記憶體中,還可以将“一對一”的邏輯關系也存儲到記憶體中
線性表存儲資料的方案可以這樣來了解,先用一根線将所有資料按照先後次序“串”起來,如下圖所示:
圖 2 中,左側是“串”起來的資料,右側是空閑的實體空間。将這“一串兒”資料存放到實體空間中,有以下兩種方法:
兩種存儲方式都可以将資料之間的關系存儲起來,從線的一頭開始捋,可以依次找到每個資料,且資料的前後位置沒有發生改變。
像圖 3 這樣,用一根線将具有“一對一”邏輯關系的資料存儲起來,這樣的存儲方式就稱為線性表或者線性存儲結構。
線性表的順序存儲和鍊式存儲
從圖 3 不難看出,線性表存儲資料的實作方案有兩種,分别是:
- 像圖 3a) 那樣,不破壞資料的前後次序,将它們連續存儲在記憶體空間中,這樣的存儲方案稱為順序存儲結構(簡稱順序表);
- 像圖 3b) 那樣,将所有資料分散存儲在記憶體中,資料之間的邏輯關系全靠“一根線”維系,這樣的存儲方案稱為鍊式存儲結構(簡稱連結清單)。
也就是說,使用線性表存儲資料,有兩種真正可以落地的存儲方案,分别是順序表和連結清單。
前驅和後繼
在具有“一對一“邏輯關系的資料集中,每個個體習慣稱為資料元素(簡稱元素)。例如,圖 1 顯示的這組資料集中,一共有 5 個元素,分别是 1、2、3、4 和 5。
此外,很多教程中喜歡用前驅和後繼來描述元素之間的前後次序:
- 某一進制素的左側相鄰元素稱為該元素的“直接前驅”,此元素左側的所有元素統稱為該元素的“前驅元素”;
- 某一進制素的右側相鄰元素稱為該元素的“直接後繼”,此元素右側的所有元素統稱為該元素的“後繼元素”;