日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三.线性表

發(fā)布時(shí)間:2024/9/30 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三.线性表 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性表(List):零個(gè)或者多個(gè)數(shù)據(jù)元素的有限序列
有且只有一個(gè)直接前驅(qū)元素,有且只有一個(gè)直接后繼
線性表元素的個(gè)數(shù)n(n>0)定義為線性表的長(zhǎng)度,當(dāng)n=0時(shí),稱為空表

在較復(fù)雜的線性表中,一個(gè)數(shù)據(jù)元素可以由若干個(gè)數(shù)據(jù)項(xiàng)組成

線性表的順序順序存儲(chǔ)結(jié)構(gòu):用一段地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的數(shù)據(jù)元素

一維數(shù)組來(lái)實(shí)現(xiàn)順序存儲(chǔ)結(jié)構(gòu).
數(shù)組的長(zhǎng)度和線性表的長(zhǎng)度的區(qū)別?
數(shù)組的長(zhǎng)度是存放線性表存儲(chǔ)空間的長(zhǎng)度,存儲(chǔ)分配后這個(gè)量一般是不變的.
線性表的長(zhǎng)度是線性表中數(shù)據(jù)元素的個(gè)數(shù),(插入/刪除)這個(gè)量是變化的
在任何時(shí)刻,線性表的長(zhǎng)度應(yīng)該小于等于數(shù)組的長(zhǎng)度

存儲(chǔ)器中的每個(gè)存儲(chǔ)單元都有自己的編號(hào),這個(gè)編號(hào)稱為地址

線性表順序存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):無(wú)需為表中元素之間的邏輯關(guān)系而增加額外的存儲(chǔ)空間,可以快速的存取表中的任一位置的元素
缺點(diǎn):插入和刪除時(shí)需要移動(dòng)表中大量的元素,當(dāng)線性表長(zhǎng)度變化較大時(shí),難以確定存儲(chǔ)空間的容量,造成存儲(chǔ)空間的碎片

線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):為了表示每個(gè)數(shù)據(jù)元素ai和其直接后繼元素ai+1之間的邏輯關(guān)系,對(duì)數(shù)據(jù)元素ai來(lái)說(shuō),除了存儲(chǔ)其本身的信息之外,還需存儲(chǔ)一個(gè)指示其直接后繼的信息(即直接后繼的存儲(chǔ)位置).我們把存儲(chǔ)數(shù)據(jù)元素的信息的區(qū)域成為數(shù)據(jù)域,把直接存儲(chǔ)直接后繼位置的域稱為指針域.指針域中存儲(chǔ)的信息稱作指針或鏈.這兩部分信息組成數(shù)據(jù)元素ai的存儲(chǔ)映像,稱為結(jié)點(diǎn)(Node)

n個(gè)結(jié)點(diǎn)鏈接成一個(gè)鏈表,即為線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu).因?yàn)榇随湵淼拿總€(gè)結(jié)點(diǎn)中只包含一個(gè)指針域,所以叫做單鏈表

頭指針:鏈表中第一個(gè)結(jié)點(diǎn)的存儲(chǔ)位置
頭結(jié)點(diǎn):在單鏈表的第一個(gè)結(jié)點(diǎn)前附設(shè)一個(gè)結(jié)點(diǎn)(為了方便對(duì)鏈表操作)
區(qū)別?
頭指針是指鏈表指向第一個(gè)結(jié)點(diǎn)的指針,如果鏈表有頭結(jié)點(diǎn),則指向頭結(jié)點(diǎn)的指針
頭指針具有標(biāo)識(shí)作用,所以常以頭指針冠以鏈表的名字
無(wú)論鏈表是否為空,頭指針都不為空,頭指針是鏈表的必要元素

頭結(jié)點(diǎn)是為了操作的統(tǒng)一和方便而設(shè)立的,放在第一元素的結(jié)點(diǎn)之前,其數(shù)據(jù)域一般無(wú)意義(也可存放鏈表長(zhǎng)度)
有了頭結(jié)點(diǎn),對(duì)在第一個(gè)元素結(jié)點(diǎn)前插入結(jié)點(diǎn)和刪除第一結(jié)點(diǎn),其操作和其他結(jié)點(diǎn)的操作就統(tǒng)一了
頭結(jié)點(diǎn)不一定是鏈表必須要素

單鏈表和順序存儲(chǔ)結(jié)構(gòu)的區(qū)別:
存儲(chǔ)分配方式:
順序存儲(chǔ)結(jié)構(gòu)用一段連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的數(shù)據(jù)元素
單鏈表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),用一組任意的存儲(chǔ)單元存放線性表的元素

時(shí)間性能:
查找:順序存儲(chǔ)結(jié)構(gòu)O(1)單鏈表O(n)
插入和刪除:順序存儲(chǔ)結(jié)構(gòu)需要平均移動(dòng)一般的元素,時(shí)間為O(n)單鏈表在找出某位置的指針后,插入和刪除時(shí)間僅為O(1)

空間性能:
順序存儲(chǔ)結(jié)構(gòu)需要預(yù)分配存儲(chǔ)空間,分大了浪費(fèi),分小了易發(fā)生上溢
單鏈表不需要分配存儲(chǔ)空間,只要有就可以分配,元素個(gè)數(shù)也不受限制

靜態(tài)鏈表:用數(shù)組描述的鏈表(游標(biāo)實(shí)現(xiàn)法)

循環(huán)鏈表:將單鏈表的終端節(jié)點(diǎn)的指針端由空指針改為指向頭結(jié)點(diǎn),就使整個(gè)單鏈表形成一個(gè)環(huán),這種頭尾相接的單鏈表稱為單循環(huán)鏈表,簡(jiǎn)稱循環(huán)鏈表

雙向鏈表:在單鏈表的每個(gè)結(jié)點(diǎn)中,再設(shè)置一個(gè)指向其前驅(qū)結(jié)點(diǎn)的指針域

總結(jié)

以上是生活随笔為你收集整理的三.线性表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。