手撕408|數(shù)據(jù)結(jié)構(gòu)之順序表(2)
通知:冷月目前提供免費(fèi)408 1對(duì)1輔導(dǎo),有需要的同學(xué)可以加我微信:lengyue408。

手撕408系列之?dāng)?shù)據(jù)結(jié)構(gòu)之順序表,冷月出品必是精品,大家好,我是學(xué)長(zhǎng)冷月。
補(bǔ)充:線性表
在介紹順序表之前,首先需要補(bǔ)充一下線性表的相關(guān)知識(shí)。之前我們有講過(guò),在學(xué)習(xí)一個(gè)新的數(shù)據(jù)結(jié)構(gòu)時(shí),要從它的三要素入手。
邏輯結(jié)構(gòu)
定義:具有相同數(shù)據(jù)類(lèi)型的n個(gè)(n≥0)數(shù)據(jù)元素的有限序列。
除了表頭元素之外(第一個(gè)元素),有且僅有一個(gè)直接前驅(qū);除表尾元素(最后一個(gè)元素)之外,有且僅有一個(gè)直接后繼。滿足這樣定義的一個(gè)數(shù)據(jù)結(jié)構(gòu)稱為線性表。
物理結(jié)構(gòu)
順序存儲(chǔ):順序表。線性表采用順序存儲(chǔ),又叫順序表(數(shù)組)
鏈?zhǔn)酱鎯?chǔ):鏈表。線性表采用鏈?zhǔn)酱鎯?chǔ),又叫鏈表。
順序表
在補(bǔ)充完線性表的相關(guān)知識(shí)后,我們知道順序表其實(shí)就是線性表的一種物理(存儲(chǔ))實(shí)現(xiàn)方式,是一種物理結(jié)構(gòu),那么我們對(duì)它下一個(gè)定義。
定義:順序表也就是數(shù)組,用一組地址連續(xù)的存儲(chǔ)單元依次存放數(shù)據(jù)元素。邏輯上相鄰,物理上也相鄰。
順序表的實(shí)現(xiàn)
1、靜態(tài)分配:直接靜態(tài)定義一個(gè)數(shù)組,其結(jié)構(gòu)體定義如下圖:

2、動(dòng)態(tài)分配:在C語(yǔ)言中是利用malloc函數(shù),在堆中分配一組地址連續(xù)的空間,其結(jié)構(gòu)體定義如下圖:

C語(yǔ)言實(shí)現(xiàn)法:
首先利用malloc函數(shù)來(lái)動(dòng)態(tài)分配空間:(ElemType * )malloc(sizeof(ElemType) * InitSize),再講data指向這片空間完成定義。
特點(diǎn)
1、地址連續(xù)(系統(tǒng)分配的內(nèi)存空間地址連續(xù))
2、隨機(jī)存?。〝?shù)組可以利用下標(biāo)進(jìn)行隨機(jī)存取,時(shí)間復(fù)雜度為O(1))
3、順序存儲(chǔ)(每一個(gè)元素按照順序依次存儲(chǔ))
明天別忘了來(lái)打卡!
關(guān)注下方“學(xué)長(zhǎng)冷月”可獲得更多408答題技巧及資料。
請(qǐng)幫冷月點(diǎn)一下旁邊的在看,再點(diǎn)一個(gè)贊,一鍵三連支持一下!您的每一次點(diǎn)擊都是對(duì)冷月莫大的鼓勵(lì),謝謝??!
點(diǎn)“在看”給我一朵小黃花![]()

