線性表的存儲(chǔ)結(jié)構(gòu)有哪些 線性表的順序存儲(chǔ)方法有哪些?
線性表的順序存儲(chǔ)方法有哪些?線性表存儲(chǔ)結(jié)構(gòu)有順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)兩種。數(shù)據(jù)元之間的關(guān)系有順序映射和非順序映射兩種不同的表達(dá)方式,得到了兩種不同的存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
線性表的順序存儲(chǔ)方法有哪些?
線性表存儲(chǔ)結(jié)構(gòu)有順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)兩種。數(shù)據(jù)元之間的關(guān)系有順序映射和非順序映射兩種不同的表達(dá)方式,得到了兩種不同的存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)是指計(jì)算機(jī)中數(shù)據(jù)的邏輯結(jié)構(gòu)。在計(jì)算機(jī)中,線性表中的每個(gè)數(shù)據(jù)元素都存儲(chǔ)在一組具有連續(xù)地址的存儲(chǔ)單元中,這稱(chēng)為線性表的順序存儲(chǔ)結(jié)構(gòu)。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)使用一組任意的存儲(chǔ)單元來(lái)存儲(chǔ)線性表的數(shù)據(jù)元素(這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的)。順序存儲(chǔ)結(jié)構(gòu)是一種存儲(chǔ)結(jié)構(gòu)類(lèi)型,它將邏輯上相鄰的節(jié)點(diǎn)存儲(chǔ)在物理上相鄰的存儲(chǔ)單元中,節(jié)點(diǎn)之間的邏輯關(guān)系由存儲(chǔ)單元的相鄰關(guān)系來(lái)反映。由此產(chǎn)生的存儲(chǔ)結(jié)構(gòu)是順序存儲(chǔ)結(jié)構(gòu),通常用計(jì)算機(jī)編程語(yǔ)言(如C/C)的數(shù)組來(lái)描述。
~]“線性表采用順序存儲(chǔ),必須占用連續(xù)的存儲(chǔ)單元?!边@是順序存儲(chǔ)。與邏輯地址相鄰的元素也與物理地址相鄰。如果你能理解這個(gè),你就能理解下一句話。
“不需要?jiǎng)?chuàng)建額外的空間來(lái)保留數(shù)據(jù)元素之間的關(guān)系。這意味著只存儲(chǔ)元素值,因?yàn)殒準(zhǔn)酱鎯?chǔ)是使用指針來(lái)指示后繼項(xiàng)或先行項(xiàng)。
整體意義是順序存儲(chǔ)占用一塊具有連續(xù)物理地址的空間來(lái)存儲(chǔ)元素,元素之間的關(guān)系就是相鄰元素之間的關(guān)系。據(jù)說(shuō)順序存儲(chǔ)是相對(duì)于鏈?zhǔn)酱鎯?chǔ)而言的。鏈?zhǔn)酱鎯?chǔ)器占用的物理地址可以是連續(xù)的,也可以是不連續(xù)的,因此要找到一個(gè)元素的后繼地址,必須用指針來(lái)表示。
用順序表來(lái)存儲(chǔ)線性表時(shí),不需要另外開(kāi)辟空間來(lái)保存數(shù)據(jù)元素之間的關(guān)系。線性表采用順序存儲(chǔ),必須占用?
看看名字就知道了。順序存儲(chǔ)結(jié)構(gòu)使用一組具有連續(xù)地址的存儲(chǔ)單元依次存儲(chǔ)線性表中的元素。
因?yàn)楸碇械拿總€(gè)元素具有相同的屬性,所以它占用相同的存儲(chǔ)空間。因此,線性表中的任何元素都可以通過(guò)地址計(jì)算直接在內(nèi)存中訪問(wèn)。這種結(jié)構(gòu)的特點(diǎn)是邏輯上相鄰的元素在物理上也是相鄰的。以順序結(jié)構(gòu)存儲(chǔ)的線性表稱(chēng)為順序表。線性表鏈?zhǔn)酱鎯?chǔ)時(shí),每個(gè)數(shù)據(jù)元(節(jié)點(diǎn))的存儲(chǔ)包括兩部分:數(shù)據(jù)區(qū)和指針區(qū)。數(shù)據(jù)區(qū)存儲(chǔ)節(jié)點(diǎn)本身的數(shù)據(jù),指針區(qū)存儲(chǔ)其后繼元素的地址(如果沒(méi)有后繼元素,則設(shè)置為null)。只要知道線性表的起始地址(記錄在表頭指針中),就可以通過(guò)鏈接關(guān)系一步一步地找到表中的每個(gè)元素
線性表實(shí)際上是一個(gè)具有當(dāng)前長(zhǎng)度和限制長(zhǎng)度MaxLength的數(shù)組。索引和排序等操作與普通數(shù)組完全相同,其邏輯順序是存儲(chǔ)順序,因此答案是:是。
九、,線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)比較有何特點(diǎn)?這兩種結(jié)構(gòu)分別適合在什么情況下使用?
順序存儲(chǔ)結(jié)構(gòu)與鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的區(qū)別:鏈?zhǔn)搅斜泶鎯?chǔ)結(jié)構(gòu)的內(nèi)存地址不一定是連續(xù)的,但順序存儲(chǔ)結(jié)構(gòu)的內(nèi)存地址必須是連續(xù)的;鏈?zhǔn)酱鎯?chǔ)適合頻繁地插入、刪除和更新元素,而順序存儲(chǔ)則適合于頻繁查詢(xún)。順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn):順序存儲(chǔ)結(jié)構(gòu)比鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)節(jié)省更多的空間。由于鏈?zhǔn)浇Y(jié)構(gòu),每個(gè)節(jié)點(diǎn)都有一個(gè)指針存儲(chǔ)字段。存儲(chǔ)操作:序列支持隨機(jī)存取,方便操作插入和刪除。鏈?zhǔn)奖刃蛄惺椒奖悖ㄒ驗(yàn)椴迦胄蛄斜硪埠芊奖悖?wèn)題是序列表的插入需要更大的空間復(fù)雜度,包括從頭索引和索引后的元素向后移動(dòng),而插入是在鏈表被索引后完成的。例如,在字典中,查詢(xún)字母J時(shí)插入完成,可以選擇兩種方式:一是按順序查詢(xún),從第一頁(yè)到第J頁(yè);二是索引查詢(xún),從字典索引中,直接查找J頁(yè)數(shù),直接查找頁(yè)數(shù),也許比順序查詢(xún)最快。
線性表的邏輯順序與存儲(chǔ)順序總是一致的,這種?
看看名字就知道了。順序存儲(chǔ)結(jié)構(gòu)使用一組具有連續(xù)地址的存儲(chǔ)單元依次存儲(chǔ)線性表中的元素。因?yàn)楸碇械拿總€(gè)元素具有相同的屬性,所以它占用相同的存儲(chǔ)空間。因此,線性表中的任何元素都可以通過(guò)地址計(jì)算直接在內(nèi)存中訪問(wèn)。這種結(jié)構(gòu)的特點(diǎn)是邏輯上相鄰的元素在物理上也是相鄰的。以順序結(jié)構(gòu)存儲(chǔ)的線性表稱(chēng)為順序表。線性表鏈?zhǔn)酱鎯?chǔ)時(shí),每個(gè)數(shù)據(jù)元(節(jié)點(diǎn))的存儲(chǔ)包括兩部分:數(shù)據(jù)區(qū)和指針區(qū)。數(shù)據(jù)區(qū)存儲(chǔ)節(jié)點(diǎn)本身的數(shù)據(jù),指針區(qū)存儲(chǔ)其后繼元素的地址(如果沒(méi)有后繼元素,則設(shè)置為null)。只要知道線性表的起始地址(記錄在頭指針中),就可以通過(guò)它們之間的鏈接關(guān)系逐漸找到表中的元素