什么是線性表
有限個同類的數據元素構成的序列,元素之間是一一對應的線性關系。
程序設計中的數組和字符串數據類型就是線性表的典型應用。
線性表常用于對大量數據元素進行隨機存取的情況。
運算和實現
線性表的實現方法:
- 鏈表:
- 順序:.
線性表常用的運算:
- 遍歷按照某方式,逐一訪問線性表中的每一個數據元素,并執行讀寫或查詢等操作。
- 查詢:按照數據元素的關鍵字(是數據元素區別于其他元素的一個特定的數據項)定位數據元素的過程。數據的插入,刪除都需要查詢定位數據元素,空的線性表無法查詢。
- 插入:在保持原有的儲存結構的前提下,根據插入要求,在適當的位置插入元素。插入時需要有足夠的空間,空間不足時插入,線性表會溢出。插入某一元素后,前面元素不影響,后續元素指針后移。
- 刪除:先查找后刪除,后續元素前移。
細說鏈表
鏈表中的元素可以儲存在內存的任何地方。因此元素在內存上并非緊靠在一起。
鏈表的每個元素儲存了下一個元素的地址,從而使一系列隨機的內存地址串在一起,夠成我們邏輯上的鏈表。
在鏈表中添加元素可以簡單解釋為:將數據元素放入內存,并將其地址存儲到前一個鏈表元素中。
鏈表中的查詢需要從頭到尾,假如需要同時讀取所有元素,,鏈表效率很高(讀取 了第一個元素,根據其中的地址再讀取第二個元素,以此類推)。但假如只需要讀取鏈表中的某一個元素,則必須讀取前面所有元素,此時鏈表效率很低。
數組則稍有不同,數組在內存上相互靠近的,假如需要讀取隨機的一個元素(數組a[5],要查詢第五個元素),因為首地址00,通過對首地址加上4個數據單元(此處假設為1),則第五個元素地址即為04,而不需要像鏈表一樣逐一查詢每一個元素直至目標元素。