更新時間:2020-12-11 17:36:22 來源:動力節點 瀏覽1648次
線性表是最基本、最簡單、也是最常用的一種數據結構,一個線性表是n個具有相同特性的數據元素的有限序列。數據元素是一個抽象的符號,其具體含義在不同的情況下一般不同。
在稍復雜的線性表中,一個數據元素可由多個數據項(item)組成,此種情況下常把數據元素稱為記錄(record),含有大量記錄的線性表又稱文件(file)。線性表中的個數n定義為線性表的長度,n=0時稱為空表。在非空表中每個數據元素都有一個確定的位置,如用ai表示數據元素,則i稱為數據元素ai在線性表中的位序。
線性表中數據元素之間的關系是一對一的關系,即除了第一個和最后一個數據元素之外,其它數據元素都是首尾相接的(注意,這句話只適用大部分線性表,而不是全部。比如,循環鏈表邏輯層次上也是一種線性表(存儲層次上屬于鏈式存儲,但是把最后一個數據元素的尾指針指向了首位結點)。
線性表主要分為兩大類:順序表和鏈表
一、順序表
順序表是指用一組地址連續的存儲單元依次存儲線性表中的數據元素的線性表。
因為這種方式與高級程序設計語言中一維數組的表示和實現相一致,所以也稱為數組表示法。采用順序表表示的線性表,表中邏輯位置相鄰的數據元素將存放到存儲器中物理地址相鄰的存儲單元之中,表中元素的邏輯關系與存儲順序(物理關系)相符,換言之,順序表中數據元素的邏輯關系是以其在存儲結構中的物理(位置)關系來表示的。
因此,在順序表中,可以根據順序表中數據元素的位序,隨機訪問表中的任一元素,即順序表是一種隨機存取的存儲結構。
二、鏈表
鏈表就是指采用鏈式存儲結構表示和實現的線性表。
鏈表的特點是采用一組任意的存儲單元來存放線性表中的數據元素,這些存儲單元可以是連續的,也可以是不連續的。 在鏈表中,數據元素之間的邏輯關系并不依賴其對應的存儲地址,而是通過設置專門用于指示數據元素之間邏輯關系的指針來描述。
因此,在鏈表中的每個數據元素是由用于存放代表其本身信息的數據域和用于存放指示數據元素之間邏輯關系的指針域兩部分組成的,數據元素的這種特殊存儲方式,稱為 結點(Node) 。
根據鏈表結點中包含指針域的指針個數、指針指向和連接方式,可將鏈表分為線性鏈表、循環鏈表、雙向鏈表、多重鏈表、十字鏈表、二叉鏈表、鄰接表、鄰接多重表等,其中線性鏈表、循環鏈表和雙向鏈表用于實現線性表的鏈式存儲結構,其他形式則用于實現擴展線性結構(數組和廣義表等)或非線性結構(樹、圖等)。
線性表作為數據結構中的重要組成成員,線性表的邏輯結構簡單,便于實現和操作,因此,線性表在實際應用中得到了廣泛應用。在本站的數據結構和算法教程中還有對許多的優秀的數據結構全面解析,讓我們能夠快速掌握各種數據結構。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習