官术网_书友最值得收藏!

第2章 線性表

 

2.1 復(fù)習(xí)筆記

一、線性表的類型定義

1線性表的定義

含有n個(gè)相同數(shù)據(jù)類型的數(shù)據(jù)元素的有限序列稱為線性表。

一般可表示為:

L=(a1,a2,…,ai1,ai,ai1,…,an1,an);

【說明】ai1是ai的直接前驅(qū)元素,ai1是ai的直接后繼元素。線性表中數(shù)據(jù)元素的個(gè)數(shù)n(n>0)為線性表的長度。當(dāng)n=0時(shí)稱線性表為空表。

線性表是最常用且最簡單的一種數(shù)據(jù)結(jié)構(gòu)。

2線性表的基本操作

(1)INITIATE(L):初始化操作。

(2)LENGTH(L):求線性表長度。

(3)GET(L,i):取元素函數(shù)。

(4)PRIOR(L,elm):求前驅(qū)函數(shù)。

(5)NEXT(L,elm):求后繼函數(shù)。

(6)LOCATE(L,X):定位函數(shù)。

(7)INSERT(L,i,b):前插操作。

(8)DELETE(L,i):刪除操作。

(9)EMPTY(L):判空表函數(shù)。

(10)CLEAR(L):表置空操作。

二、線性表的順序表示和實(shí)現(xiàn)

1順序存儲(chǔ)結(jié)構(gòu)的表示

順序存儲(chǔ)結(jié)構(gòu)(又稱順序表)是一種隨機(jī)存取的結(jié)構(gòu),邏輯關(guān)系上相鄰的元素物理位置上也相鄰。數(shù)組是表示順序存儲(chǔ)結(jié)構(gòu)最簡單的一個(gè)方式。如圖2-1所示,只要確定了存儲(chǔ)線性表的起始位置,線性表中任一數(shù)據(jù)元素都可隨機(jī)存取。

圖2-1 線性表的順序存儲(chǔ)結(jié)構(gòu)示意圖

2順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn)

優(yōu)點(diǎn):

它是一個(gè)記錄型的結(jié)構(gòu)。數(shù)據(jù)元素的存儲(chǔ)位置可用數(shù)組的下標(biāo)值(即相對于線性表的起始位置的值)來表示;

在順序存儲(chǔ)結(jié)構(gòu)中,線性表的某些操作容易實(shí)現(xiàn),如求表長的操作;

缺點(diǎn):

在做插入或刪除操作時(shí),需移動(dòng)大量元素;

在給長度變化較大的線性表預(yù)先分配空間時(shí),必須按最大空間分配,易造成了空間的浪費(fèi);

表的容量難以擴(kuò)充。

三、線性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)

鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),由于它不要求邏輯上相鄰的元素在物理位置上也相鄰,因此它沒有順序存儲(chǔ)結(jié)構(gòu)所具有的缺點(diǎn)。

1定義

借助指針等手段來表示數(shù)據(jù)元素ai和直接后繼元素ai1之間的關(guān)系,ai不僅存儲(chǔ)本身的信息,還存儲(chǔ)指向后繼的指針。數(shù)據(jù)元素(數(shù)據(jù)域)和指向后繼的指針(指針域)合起來稱為一個(gè)結(jié)點(diǎn),n個(gè)結(jié)點(diǎn)鏈接成一個(gè)鏈表即為線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

2鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)

(1)不要求邏輯上相鄰的元素在物理位置上也相鄰;

(2)數(shù)據(jù)元素之間的邏輯關(guān)系是由結(jié)點(diǎn)中的指針指示的;

3鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的分類

鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)種類繁多,按照實(shí)現(xiàn)方式的不同,可分為借助指針實(shí)現(xiàn)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)和借助數(shù)組實(shí)現(xiàn)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

(1)借助指針實(shí)現(xiàn)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

單鏈表

在單鏈表中,對于每個(gè)結(jié)點(diǎn)來說,除了存儲(chǔ)本身的信息外,還需要存放一個(gè)指向其后繼的指針。邏輯位置相鄰但物理位置不相鄰的數(shù)據(jù)元素用單鏈表鏈接如圖2-2所示。

圖2-2 單鏈表的邏輯狀態(tài)

雙鏈表

雙鏈表的結(jié)點(diǎn)中除了數(shù)據(jù)域外,還有兩個(gè)指針域,一個(gè)指向直接后繼,另一個(gè)指向直接前驅(qū)。

在雙向鏈表中,有些操作如:LENGTH(L)、GET(L,i)、LOCATE(L,x)等僅需涉及一個(gè)方向的指針,但插入、刪除時(shí),需同時(shí)修改兩個(gè)方向上的指針,圖2-3和圖2-4分別顯示了刪除和插入結(jié)點(diǎn)時(shí)指針修改的情況。

圖2-3 雙向鏈表中刪除結(jié)點(diǎn)時(shí)指針變化情況

圖2-4 雙向鏈表中插入結(jié)點(diǎn)時(shí)指針變化情況

循環(huán)鏈表

循環(huán)鏈表是一種首尾相連的鏈表,它的最后一個(gè)結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),形成一個(gè)環(huán)。循環(huán)鏈表包括單循環(huán)鏈表和雙循環(huán)鏈表。其中單循環(huán)鏈表如圖2-5所示。

雙鏈表也可以有循環(huán)鏈表,帶有圖2-6(a)這種結(jié)點(diǎn)結(jié)構(gòu)的雙循環(huán)鏈表一般如圖2-6(c)所示,鏈表中存有兩個(gè)環(huán)。圖2-6(b)所示為只有一個(gè)表頭結(jié)點(diǎn)的空表。

圖2-5 單循環(huán)鏈表

圖2-6 雙向鏈表示例

(2)借助數(shù)組實(shí)現(xiàn)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——靜態(tài)鏈表

預(yù)先分配一個(gè)較大的空間,使用數(shù)組下標(biāo)將邏輯上相鄰的元素鏈接起來的特殊鏈表叫靜態(tài)鏈表。

其中插入刪除等操作具有和指針實(shí)現(xiàn)的鏈表一樣的優(yōu)點(diǎn)。例如,圖2-7(b)展示了圖2-7(a)所示線性表在插入數(shù)據(jù)元素“SHI”和刪除數(shù)據(jù)元素“ZHENG”之后的狀況。

圖2-7 靜態(tài)鏈表示例

【注意】

采用指針實(shí)現(xiàn)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是非隨機(jī)存取的存儲(chǔ)結(jié)構(gòu);

頭結(jié)點(diǎn)和頭指針的區(qū)別:

頭結(jié)點(diǎn)是在鏈表的第一個(gè)結(jié)點(diǎn)之前附加一個(gè)結(jié)點(diǎn)(該結(jié)點(diǎn)可以不存儲(chǔ)任何信息,也可以存儲(chǔ)鏈表長度等信息),從而使得鏈表的第一個(gè)結(jié)點(diǎn)和其他結(jié)點(diǎn)在處理問題上的操作保持一致。

頭指針是為了標(biāo)識(shí)一個(gè)鏈表而產(chǎn)生的,當(dāng)鏈表存在頭結(jié)點(diǎn)時(shí),則頭指針指向頭結(jié)點(diǎn),當(dāng)鏈表不存在頭結(jié)點(diǎn)時(shí),頭指針指向鏈表的第一個(gè)元素(也可能為空)。

如圖2-8(a)所示,此時(shí),單鏈表的頭指針指向頭結(jié)點(diǎn)。若線性表為空表,則頭結(jié)點(diǎn)的指針域?yàn)椤翱铡保鐖D2-8(b)所示。

圖2-8 帶頭結(jié)點(diǎn)的單鏈表

四、一元多項(xiàng)式的表示及相加

 

推薦閱讀
  1. 2017考研政治分析題必備黃金模板22例
  2. 孫關(guān)宏《政治學(xué)概論》(第2版)配套題庫【名校考研真題+課后習(xí)題+章節(jié)題庫+模擬試題】
  3. 新聞與傳播碩士《440新聞與傳播專業(yè)基礎(chǔ)》名校考研真題及詳解(含復(fù)旦、武大等)
  4. 高而基考研心理學(xué):實(shí)驗(yàn)心理學(xué)分冊(統(tǒng)考版)
  5. 馮博琴《微型計(jì)算機(jī)原理與接口技術(shù)》(第3版)配套題庫【名校考研真題+課后習(xí)題+章節(jié)題庫+模擬試題】
  6. 考博英語閱讀理解、翻譯與寫作高分突破
  7. 王道俊《教育學(xué)》(第7版)筆記和課后習(xí)題(含考研真題)詳解
  8. 黃達(dá)《金融學(xué)》名校考研(含復(fù)試)真題詳解(視頻講解)
  9. 山西財(cái)經(jīng)大學(xué)801經(jīng)濟(jì)學(xué)歷年考研真題及詳解
  10. 李彬《全球新聞傳播史(公元1500—2000年)》(第2版)筆記和課后習(xí)題(含考研真題)詳解
  11. 江西師范大學(xué)外國語學(xué)院716綜合英語歷年考研真題及詳解
  12. 武漢大學(xué)外國語言文學(xué)學(xué)院244二外日語歷年考研真題及詳解
  13. 康華光《電子技術(shù)基礎(chǔ)-數(shù)字部分》(第5版)配套題庫【名校考研真題+課后習(xí)題+章節(jié)題庫+模擬試題】
  14. 靳希斌《教育經(jīng)濟(jì)學(xué)》(第4版)筆記和課后習(xí)題(含考研真題)詳解
  15. 鄔倫《地理信息系統(tǒng)—原理、方法和應(yīng)用》筆記和典型題(含考研真題)詳解
主站蜘蛛池模板: 兴和县| 桂东县| 手游| 南宁市| 深水埗区| 嫩江县| 龙游县| 麻栗坡县| 达拉特旗| 新郑市| 都匀市| 京山县| 遂平县| 互助| 正宁县| 盐池县| 安国市| 绥芬河市| 淮滨县| 开平市| 色达县| 桂平市| 浦北县| 宁波市| 徐汇区| 精河县| 阿克苏市| 阿克苏市| 铜川市| 武鸣县| 绥中县| 嫩江县| 那曲县| 佳木斯市| 哈巴河县| 宜春市| 黎平县| 扎赉特旗| 车险| 昆山市| 伊宁市|