網(wǎng)站域名信息查詢湛江今日頭條
?
目錄
?
一.順序表的定義
1.順序表的概念及結(jié)構(gòu)
1.1線性表
2.順序表的分類
2.1靜態(tài)順序表
2.2動(dòng)態(tài)順序表?
二.動(dòng)態(tài)順序表的實(shí)現(xiàn)
1.準(zhǔn)備工作和注意事項(xiàng)
2.順序表的基本接口:
? ?2.0 創(chuàng)建一個(gè)順序表
? ?2.1 順序表的初始化
2.2 順序表的銷毀
2.3?順序表的打印
3.順序表的尾插和尾刪接口:
4.順序表的擴(kuò)容接口:
5.順序表的頭插和頭刪接口:
6.順序表的指定位置插入和刪除接口:
7.順序表的查找接口:
?三.完整代碼
SeqList.c:?
SeqList.h:
test.c?:
?
一.順序表的定義
1.順序表的概念及結(jié)構(gòu)
1.1線性表
2.順序表的分類
順序表的底層是數(shù)組,但和數(shù)組不一樣的是,它對(duì)數(shù)組進(jìn)行了分裝,增加了增刪查改等接口
2.1靜態(tài)順序表
概念:使用定長(zhǎng)的數(shù)組存儲(chǔ)元素(用存儲(chǔ)整型舉例)
缺陷:?空間給多了造成空間浪費(fèi),給少了空間不夠
這里我解釋一下為什么用 replace 代替 int : 這樣是方便以后修改順序表存儲(chǔ)別的數(shù)據(jù)類型,用N代替數(shù)組的元素個(gè)數(shù)同理,修改時(shí)更方便
2.2動(dòng)態(tài)順序表?
二.動(dòng)態(tài)順序表的實(shí)現(xiàn)
1.準(zhǔn)備工作和注意事項(xiàng)
?創(chuàng)建3個(gè)文件:
?
? 第一個(gè)文件:用于接口函數(shù)和所有需要用到的庫函數(shù)頭文件的聲明,定義順序表的結(jié)構(gòu)
? 第二個(gè)文件:用于對(duì)接口函數(shù)的定義
? 第三個(gè)文件:用于接口的測(cè)試
? 注意事項(xiàng):建議每個(gè)函數(shù)接口寫完對(duì)其進(jìn)行調(diào)試,避免最后產(chǎn)生大量報(bào)錯(cuò)而束手無措
? ? ? ? ? ? ? ? ? ? 我在每個(gè)接口的代碼上面都添加了很多注釋,幫助各位未來的大佬增加理解哦
2.順序表的基本接口:
? ?2.0 創(chuàng)建一個(gè)順序表
?
? ?2.1 順序表的初始化
?
對(duì)于我為什么要先用arr來接收開辟好的空間,我本來是想著開辟失敗會(huì)影響先前開辟好的空間,但轉(zhuǎn)念一想先前本來也沒有開辟空間那,如果開辟失敗的還用arr接收還是直接用結(jié)構(gòu)體成員指針接收都一樣那,但從更廣泛的編程實(shí)踐和代碼質(zhì)量的角度考慮,先用arr
接收是一種更好的編程習(xí)慣,有助于提高代碼的嚴(yán)謹(jǐn)性和可讀性,減少潛在的錯(cuò)誤和問題。?
2.2 順序表的銷毀
2.3?順序表的打印
?提前將打印接口寫好,方便后面的觀察
3.順序表的尾插和尾刪接口:
尾插:
切記:在插入數(shù)據(jù)后都要讓有效數(shù)據(jù)個(gè)數(shù)+1
尾刪:
4.順序表的擴(kuò)容接口:
由于順序表的插入接口都要進(jìn)行擴(kuò)容判斷,所以我們可以把擴(kuò)容單獨(dú)分裝成一個(gè)函數(shù)
這樣在后續(xù)的代碼中我們直接調(diào)用這個(gè)函數(shù)就可以了?
5.順序表的頭插和頭刪接口:
頭插:
頭刪:
6.順序表的指定位置插入和刪除接口:
插入:
刪除:
由于下面這些代碼邏輯都差不多,我也就沒做注釋了,指定位置的插入刪除無非就是要挪動(dòng)數(shù)據(jù),這個(gè)你自己畫圖后就可以看懂了
7.順序表的查找接口:
?三.完整代碼
SeqList.c:?
?SeqList.h:
?
test.c?:
這部分我只調(diào)用了部分函數(shù)(僅供參考)
四.順序表的問題及思考??
?
?