區(qū)塊鏈存證 順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎ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)的區(qū)別:鏈?zhǔn)搅斜泶鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)地址不一定是連續(xù)的,但順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)地址必須是連續(xù)的;鏈?zhǔn)酱鎯?chǔ)適合頻繁地插入、刪除和更新元素,而順序存儲(chǔ)
順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn)?
順序存儲(chǔ)結(jié)構(gòu)與鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的區(qū)別:鏈?zhǔn)搅斜泶鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)地址不一定是連續(xù)的,但順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)地址必須是連續(xù)的;鏈?zhǔn)酱鎯?chǔ)適合頻繁地插入、刪除和更新元素,而順序存儲(chǔ)則適合于頻繁查詢。順序存儲(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ù)雜度,包括從標(biāo)題索引和索引后的元素向后移動(dòng),而鏈表的插入是在索引后完成的)例如,在字典中查找字母J時(shí),可以選擇兩種方式:一是按順序查詢,從第一個(gè)開(kāi)始第二,索引查詢,從字典索引,直接找到J頁(yè)的頁(yè)數(shù),直接找到頁(yè)數(shù),也許比順序查詢要快。
為什么引用鏈?zhǔn)酱鎯?chǔ)?
1優(yōu)缺點(diǎn)
(1)在順序存儲(chǔ)中,相鄰數(shù)據(jù)元素的存儲(chǔ)地址也是相鄰的(邏輯和物理統(tǒng)一);內(nèi)存中可用存儲(chǔ)單元的地址必須是連續(xù)的。
優(yōu)點(diǎn):存儲(chǔ)密度高(=1),存儲(chǔ)空間利用率高。缺點(diǎn):不方便插入或刪除元素。
②在鏈?zhǔn)酱鎯?chǔ)中,相鄰的數(shù)據(jù)元素可以隨意存儲(chǔ),但存儲(chǔ)空間分為兩部分,一部分存儲(chǔ)節(jié)點(diǎn)值,另一部分存儲(chǔ)表示節(jié)點(diǎn)關(guān)系的指針
優(yōu)點(diǎn):插入或刪除元素非常方便,使用靈活。缺點(diǎn):存儲(chǔ)密度低(<1),存儲(chǔ)空間利用率低。
2用法
序列表適用于靜態(tài)操作(如搜索),鏈表適用于動(dòng)態(tài)操作(如插入和刪除)。
如果線性表的長(zhǎng)度變化不大,其主要操作是查找,則使用順序表;
如果線性表的長(zhǎng)度變化很大,其主要操作是插入或刪除,則使用鏈接表。
3比較
序列表與鏈表的比較
基于空間的比較
存儲(chǔ)分配方法
序列表的存儲(chǔ)空間是靜態(tài)分配的
鏈表的存儲(chǔ)空間是動(dòng)態(tài)分配的
存儲(chǔ)密度=節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)量/節(jié)點(diǎn)的總存儲(chǔ)量結(jié)構(gòu)
序列表的存儲(chǔ)密度=1
鏈表的存儲(chǔ)密度1]]基于時(shí)間的比較
訪問(wèn)方法
序列表可以隨機(jī)訪問(wèn),也可以按順序訪問(wèn)
鏈表按順序訪問(wèn)
插入/刪除過(guò)程中移動(dòng)的元素?cái)?shù)
序列表需要移動(dòng)近平均一半的元素
鏈表不需要移動(dòng)元素,只需要修改指針
不能。
數(shù)組是一個(gè)連續(xù)的內(nèi)存塊。
鏈存儲(chǔ)基于切片,適用于鏈表、樹(shù)等。
數(shù)組能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)嗎?
當(dāng)線性列表存儲(chǔ)在鏈中時(shí),其地址可以是連續(xù)的,也可以不是連續(xù)的。線性鏈表的鏈?zhǔn)酱鎯?chǔ)可以用連續(xù)或不連續(xù)的存儲(chǔ)單元存儲(chǔ)線性鏈表中的元素。
線性表采用鏈?zhǔn)酱鎯?chǔ)地址?
這兩種存儲(chǔ)結(jié)構(gòu)的主要特點(diǎn)如下:1。順序存儲(chǔ)結(jié)構(gòu):存儲(chǔ)單元的地址是連續(xù)的,通過(guò)“相鄰物理位置”表示線性表中數(shù)據(jù)元素之間的邏輯關(guān)系,可以隨機(jī)訪問(wèn)表中的任意元素。2鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):存儲(chǔ)單元的地址為任意組,其存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的。在表示數(shù)據(jù)元素之間的邏輯關(guān)系時(shí),除了存儲(chǔ)其自身的信息外,還需要存儲(chǔ)一個(gè)表示其直接后繼者的信息(即直接后繼者的存儲(chǔ)位置)。這兩部分信息構(gòu)成了數(shù)據(jù)元素的存儲(chǔ)映像,稱為節(jié)點(diǎn)。雖然不同數(shù)據(jù)表的數(shù)據(jù)元素可以不同,但同一線性表的數(shù)據(jù)元素必須具有相同的數(shù)據(jù)類型和長(zhǎng)度。2線性表中每個(gè)數(shù)據(jù)元素的位置僅取決于其序列號(hào)。數(shù)據(jù)元素之前的相對(duì)位置是線性的,即只有“第一個(gè)”和“最后一個(gè)”數(shù)據(jù)元素。除第一個(gè)和最后一個(gè)外,其他元素前面只有一個(gè)數(shù)據(jù)元素(直接前體),后面只有一個(gè)數(shù)據(jù)元素(直接后繼)