c++中::是什么意思 單鏈表和順序表的區(qū)別在哪里,各自的優(yōu)缺點(diǎn)是什么?
單鏈表和順序表的區(qū)別在哪里,各自的優(yōu)缺點(diǎn)是什么?我們先來(lái)談?wù)勑蛄斜?。您可以一次申?qǐng)多個(gè)空格,例如mallco(sizeof(type)*n)。類型可以生成任何類型,包括由結(jié)構(gòu)定義的類型。N是整數(shù),因此
單鏈表和順序表的區(qū)別在哪里,各自的優(yōu)缺點(diǎn)是什么?
我們先來(lái)談?wù)勑蛄斜?。您可以一次申?qǐng)多個(gè)空格,例如mallco(sizeof(type)*n)。類型可以生成任何類型,包括由結(jié)構(gòu)定義的類型。
N是整數(shù),因此我們得到N個(gè)連續(xù)空間。order表可以以數(shù)組的形式訪問(wèn),也就是說(shuō),通過(guò)下標(biāo)。當(dāng)然,定義的變量類型必須是指針類型,這非常方便。當(dāng)然,也可以通過(guò)鏈表訪問(wèn)。單鏈表只是分散了空間。優(yōu)點(diǎn)是它可以根據(jù)需要?jiǎng)討B(tài)應(yīng)用。一般來(lái)說(shuō),一次可以應(yīng)用一個(gè)空間節(jié)點(diǎn),即n=1。當(dāng)然,你也可以根據(jù)需要申請(qǐng)。但一般來(lái)說(shuō),初次申請(qǐng)不足以按一定數(shù)額繼續(xù)申請(qǐng)。歸根結(jié)底,序列表的訪問(wèn)更方便,單鏈表的動(dòng)態(tài)應(yīng)用更靈活。但是如果你看教科書(shū)上的程序,它們都是序列表的形式,包括堆棧和隊(duì)列
序列表的優(yōu)點(diǎn)是便于隨機(jī)存儲(chǔ),缺點(diǎn)是不便于插入和刪除操作,因?yàn)椴迦牒蛣h除一個(gè)元素需要移動(dòng)所有后續(xù)的元素,但是鏈表沒(méi)有這個(gè)問(wèn)題。鏈表只需要改變指針,耗時(shí)小,所以鏈表正好與順序表相反,優(yōu)點(diǎn)是容易進(jìn)行插入、刪除等操作,缺點(diǎn)是隨機(jī)存儲(chǔ)不如順序表方便。
數(shù)據(jù)結(jié)構(gòu)中順序表和鏈表有什么優(yōu)缺點(diǎn)?
順序列表是一種數(shù)據(jù)結(jié)構(gòu),其中存儲(chǔ)位置是連續(xù)的,可以立即訪問(wèn);
鏈表是一種數(shù)據(jù)結(jié)構(gòu),其中元素之間的關(guān)系由指針描述。
同一點(diǎn)
有限序列。
存儲(chǔ)空間不同
序列表的存儲(chǔ)空間是靜態(tài)的,需要預(yù)先分配空間;
鏈表的存儲(chǔ)空間是動(dòng)態(tài)分配的,只要有內(nèi)存空間,就可以動(dòng)態(tài)申請(qǐng)空間。
不同運(yùn)算時(shí)間
序列表是一種隨機(jī)存取結(jié)構(gòu),方便元素的隨機(jī)存取。因此,順序表應(yīng)該只用于搜索,很少用于插入和刪除操作;
鏈表是一種非隨機(jī)訪問(wèn)結(jié)構(gòu),任何節(jié)點(diǎn)的操作都必須從指針開(kāi)始,沿著鏈掃描。需要頻繁插入和刪除元素的線性表應(yīng)使用鏈表。