數(shù)據(jù)結(jié)構(gòu)之線性表(順序和鏈?zhǔn)剑?、棧和?duì)列、串總結(jié)

一、數(shù)據(jù)結(jié)構(gòu)之順序表總結(jié)

1、定長(zhǎng)順序表

定長(zhǎng)順序表

頭文件sqlist.h

sqlist.h

實(shí)現(xiàn)頭文件函數(shù)的文件:sqlist.cpp

初始化函數(shù)
插入函數(shù)
尋找刪除函數(shù)
其它函數(shù)

example---->實(shí)例詳解:比較兩個(gè)順序表的大小。若兩個(gè)表均為空表或者所有元素均相同,就返回0;若不同,當(dāng)在兩個(gè)順序表相同長(zhǎng)度內(nèi)發(fā)現(xiàn)不同元素就返回不同元素的差值,當(dāng)在兩個(gè)順序表相同長(zhǎng)度內(nèi)未發(fā)現(xiàn)不同元素就返回表長(zhǎng)度的差值;

example

2、不定長(zhǎng)順序表

頭文件dsqlist.h:

dsqlist.h

實(shí)現(xiàn)頭文件函數(shù)的文件:dsqlist.cpp

初始化函數(shù)
插入函數(shù)
摧毀函數(shù)




二、數(shù)據(jù)結(jié)構(gòu)之靜態(tài)鏈表總結(jié)

靜態(tài)鏈表

1、定長(zhǎng)靜態(tài)鏈表

0號(hào)下標(biāo)為有效鏈的頭結(jié)點(diǎn),1號(hào)下標(biāo)為空閑鏈的頭結(jié)點(diǎn),兩條鏈都是循環(huán)鏈表。

頭文件slinklist.h

slinklist.h

實(shí)現(xiàn)頭文件函數(shù)的文件slinklist.cpp

初始化函數(shù)
頭插與尾插
尋找結(jié)點(diǎn)以及判空
從有效鏈中刪除一個(gè)結(jié)點(diǎn)
摧毀、打印




三、數(shù)據(jù)結(jié)構(gòu)之鏈表總結(jié)

1、單鏈表

單鏈表

頭文件:list.h

list.h

實(shí)現(xiàn)頭文件函數(shù)的文件:list.cpp

初始化和購(gòu)買(mǎi)節(jié)點(diǎn)
頭插尾插
插到鏈表中給定位置的函數(shù)
尋找值和前驅(qū)的函數(shù)
刪除 摧毀
鏈表逆置
打印鏈表、得到鏈表長(zhǎng)度、判空

2、循環(huán)鏈表

循環(huán)鏈表

頭文件clist.h(函數(shù)同單鏈表),結(jié)點(diǎn)定義如下:

clist.h(函數(shù)省略,同單鏈表)

實(shí)現(xiàn)頭文件函數(shù)的文件clist.cpp:

初始化和購(gòu)買(mǎi)節(jié)點(diǎn)
頭插尾插

2、帶頭雙向非循環(huán)鏈表

帶頭雙向非循環(huán)

頭文件dlist.h(函數(shù)同單鏈表),結(jié)點(diǎn)定義如下:

dlist.h

實(shí)現(xiàn)頭文件函數(shù)的文件dlist.cpp:

初始化和購(gòu)買(mǎi)節(jié)點(diǎn)
頭插和尾插
查找刪除
摧毀

4、鏈表利用實(shí)例

Question:利用帶頭結(jié)點(diǎn)的單鏈表保存一元多項(xiàng)式,按指數(shù)升序排列;

帶頭結(jié)點(diǎn)的單鏈表保存一元多項(xiàng)式

頭文件poly.h:

poly.h

實(shí)現(xiàn)頭文件函數(shù)的文件:poly.cpp

初始化函數(shù)
尋找前驅(qū) ?購(gòu)買(mǎi)節(jié)點(diǎn)
插入
兩個(gè)多項(xiàng)式相加、相減,打印多項(xiàng)式

5、不帶頭結(jié)點(diǎn)的單鏈表的實(shí)現(xiàn)

頭文件如下:

不帶頭結(jié)點(diǎn)的單鏈表的頭文件

實(shí)現(xiàn)頭文件函數(shù)的文件:

初始化和購(gòu)買(mǎi)節(jié)點(diǎn)
頭插尾插
刪除結(jié)點(diǎn)
查找 得到鏈表長(zhǎng)度
打印 摧毀



四、數(shù)據(jù)結(jié)構(gòu)之??偨Y(jié)

棧的特點(diǎn)是先進(jìn)后出

1、定長(zhǎng)順序棧

頭文件stack.h

stack.h

實(shí)現(xiàn)頭文件函數(shù)的文件stack.cpp

初始化 ?判滿 ?插入元素
判空及兩個(gè)獲得

2、鏈?zhǔn)綏#◣ь^結(jié)點(diǎn)的單鏈表存儲(chǔ),鏈頭端為棧頂)

頭文件lstack.h:

lstack.h

實(shí)現(xiàn)頭文件函數(shù)的文件:

初始化、購(gòu)買(mǎi)節(jié)點(diǎn)、插入元素
判空及兩個(gè)獲得
摧毀



五、數(shù)據(jù)結(jié)構(gòu)之隊(duì)列總結(jié)

隊(duì)列的特點(diǎn)是先進(jìn)先出,隊(duì)列可以分為線性隊(duì)列和環(huán)形隊(duì)列,由于線性隊(duì)列入隊(duì)時(shí)間復(fù)雜度是O(1),而出隊(duì)時(shí)間復(fù)雜度達(dá)到了O(n);所以選用了入隊(duì)和出隊(duì)都為O(1)的環(huán)形隊(duì)列。

1、定長(zhǎng)環(huán)形順序隊(duì)列

定長(zhǎng)環(huán)形順序隊(duì)列

頭文件queue.h:

queue.h

實(shí)現(xiàn)頭文件函數(shù)的文件queue.cpp:

初始化、判滿、插入元素
判空、獲得元素
摧毀、得到隊(duì)列大小

2、鏈?zhǔn)疥?duì)列

鏈?zhǔn)疥?duì)列


頭文件lqueue.h:

lqueue.h

實(shí)現(xiàn)頭文件函數(shù)的文件lqueue.cpp:

初始化、購(gòu)買(mǎi)節(jié)點(diǎn)、判空、插入元素
兩個(gè)獲得
摧毀 ?求大小

3、鏈?zhǔn)絻?yōu)先級(jí)有序隊(duì)列

入隊(duì)時(shí)間復(fù)雜度O(n),出隊(duì)O(1),即優(yōu)先級(jí)高的先出

鏈?zhǔn)絻?yōu)先級(jí)有序隊(duì)列

頭文件priqueue.h:

priqueue.h

實(shí)現(xiàn)頭文件函數(shù)的文件priqueue.cpp:

初始化、購(gòu)買(mǎi)結(jié)點(diǎn)、尋找前驅(qū)、插入元素
判空、兩個(gè)得到

4、雙端隊(duì)列

輸入受限的雙端隊(duì)列:輸入只可從一端,輸出可以從兩端

輸出受限的雙端隊(duì)列:輸出只可從一端,輸入可以從兩端




六、數(shù)據(jù)結(jié)構(gòu)之串總結(jié)

1、不定長(zhǎng)順序表串

不定長(zhǎng)順序表串

頭文件str.h:

str.h

實(shí)現(xiàn)頭文件的函數(shù)的文件str.cpp

初始化、拷貝
將t插入ps的pos位置
從s的pos位置開(kāi)始找出長(zhǎng)度為len的子串,存于sub中
在s中的pos位置開(kāi)始查找 ?是否存在子串sub
刪除
替換
得到長(zhǎng)度 清除 摧毀 打印

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --------------------end ?&

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容