當前位置:首頁 » 服務存儲 » 單鏈表存儲數據元素
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

單鏈表存儲數據元素

發布時間: 2023-03-04 20:12:02

『壹』 單鏈表的存儲密度是多少

單鏈表的存儲密度小於1。
原因:「存儲密度=單鏈表數據項所佔空間/結點所佔空間」,而「結點所佔空間=數據項所佔空間+存放後繼結點地址的鏈域」;所以,存儲密度小於1。
數據結構中單鏈表的存儲密度:鏈表的每個節點除了數據域用來存儲元素外,還要額外的設置指針域,用來存儲用來存儲指示元素之間的邏輯關系的指針。
存儲密度是指數據元素本身所佔的存儲量和整個結點結構所佔的存儲量之比。
假設單鏈表數據元素本身的存儲量為N,指針域所佔的存儲量為M,則存儲密度為:N/(N+M)。而結點所佔空間=數據項所佔空間+存放後繼結點地址的鏈域。

『貳』 單鏈表存儲結構LNode, *LinkList;的含義

LNode* = LinkList, LNode,*LinkListl,都是匿名結構體別名,Lnode是實體,而LiskList是這種ElemType類型的指針,就是經常在參數表中表示一個鏈表都用LinkList定義一個指向頭結點的指針了。

單鏈表是一種鏈式存取的數據結構,用一組地址任意的存儲單元存放線性表中的數據元素。

鏈表中的數據是以結點來表示的,每個結點的構成:元素(數據元素的映象) + 指針(指示後繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是連接每個結點的地址數據。

以「結點的序列」表示線性表稱作線性鏈表(單鏈表)

單鏈表是鏈式存取的結構,為找第 i 個數據元素,必須先找到第 i-1 個數據元素。

因此,查找第 i 個數據元素的基本操作為:移動指針,比較 j 和 i

單鏈表

1、鏈接存儲方法

鏈接方式存儲的線性表簡稱為鏈表(Linked List)。

鏈表的具體存儲表示為:

① 用一組任意的存儲單元來存放線性表的結點(這組存儲單元既可以是連續的,也可以是不連續的)

② 鏈表中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關系,在存儲每個結點值的同時,還必須存儲指示其後繼結點的地址(或位置)信息(稱為指針(pointer)或鏈(link))

『叄』 鏈表存儲的優缺點

鏈表優點和缺點如下:

優點:在插入和刪除操作時,只需要修改被刪節點上一節點的鏈接地址,不需要移動元素,從而改進了在順序存儲結構中的插入和刪除操作需要移動大量元素的缺點。

缺點:

1、沒有解決連續存儲分配帶來的表長難以確定的問題。

2、失去了順序存儲結構隨機存取的特性。

(3)單鏈表存儲數據元素擴展閱讀:

線性表的鏈式存儲表示的特點是用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的)。

根據情況,也可以自己設計鏈表的其它擴展。但是一般不會在邊上附加數據,因為鏈表的點和邊基本上是一一對應的(除了第一個或者最後一個節點,但是也不會產生特殊情況)。

對於非線性的鏈表,可以參見相關的其他數據結構,例如樹、圖。另外有一種基於多個線性鏈表的數據結構:跳錶,插入、刪除和查找等基本操作的速度可以達到O(nlogn),和平衡二叉樹一樣。

其中存儲數據元素信息的域稱作數據域(設域名為data),存儲直接後繼存儲位置的域稱為指針域(設域名為next)。指針域中存儲的信息又稱做指針或鏈。

『肆』 數據結構線性表的單鏈表存儲結構

線性表是一種數據元素有序的邏輯結構,通常採用順序存儲結構和鏈式存儲結構。線性表採用順序存儲結構時,有利用線性表長度的計算、線性表數據元素的存取和數據元素的遍歷,同時也從物理結構上反映了線性表數據元素的邏輯結構,有點類似於c語言中的數組,但是採用順序存儲結構時,插入和刪除數據元素時,要移動較多的數據元素;採用鏈表結構存儲的線性表,克服了插入和刪除數據元素時要移動較多元素的缺點,其只要尋找到需要插入和刪除的數據元素處,處理相應的指針就可以實現數據元素的插入和刪除,同時也和順序存儲的線性表一樣方便遍歷,但是其不利於計算線性表的長度,線性表的鏈表存儲結構有以下幾種常見類型:採用帶頭指針和頭結點的單鏈表、採用僅帶頭指針的單鏈表、帶頭指針和頭結點的循環鏈表、帶頭指針和尾結點的循環鏈表、雙向鏈表等形式。在實際應用中,結合順序表易於計算表長和鏈表易於插入和刪除的特點,實際一般採用兩者結合的一種單鏈表,其鏈表類型為帶有頭指針(含頭結點)和尾指針,以及含有線性表長度的分量,在一元多項式的運算中採用的就是這種鏈式存儲結構。此外,還有一種一般應用於無指針的高級語言中的靜態單鏈表的存儲結構。

『伍』 線性表鏈式存儲結構是什麼

線性表是一種邏輯結構,它有兩種存儲方式,順序存儲和鏈式存儲。
順序存儲對應的是順序表,鏈式存儲對應的有單鏈表,雙鏈表,循環鏈表以及靜態鏈表。

其中,線性表的鏈式存儲又稱為單鏈表。
註:雙鏈表、循環鏈表等都是由單鏈表演化而來。
單鏈表:一個後繼指針,一個頭結點和頭指針。每一個結點是存儲下一個結點的存儲位置,因此最後一個結點存儲null,也就是空值。

雙鏈表:雙鏈表結點中有兩個指針,prior和next,即有前驅指針和後繼指針,分別指向前驅和後繼結點。

循環鏈表:循環鏈表和單鏈表的區別在於最後一個結點的指針不是null(回到單鏈表的知識去看一下吧),而是指向頭結點,從而整個鏈表成為了一個環。

循環雙鏈表:循環雙鏈表中頭結點的指針prior指針還要指向表尾結點。
註:在循環雙鏈表L中,當循環雙鏈表為空表時,其頭結點的prior域和next域都等於L。

靜態鏈表:靜態鏈表是藉助數組來描述線性表的鏈式存儲結構。結點有data域和指針域next。按照我的理解:其實靜態鏈表和單鏈表在結構上差不太多,但是靜態鏈表又和順序表很像,可以把靜態鏈表看作是單鏈表和順序表的結合吧。

鏈式存儲結構就這幾種了。

『陸』 數據結構|單鏈表表示的三種方法

對於線性表來說, 總得有個頭尾,頭部做為基準地址,如數組的數組名,鏈表的頭指針。尾部做為結束的標志,數組使用一個長度屬性來標識數組的結束位置,字元串使用轉義字元'',鏈表使用NULL指針來標識結束位置。

我們知道,數組的全部元素是集中存儲,數組的基準地址是第一個元素的地址,也就是數組名的值,其它元素的索引都是一個整型常量,對元素的訪問就是基準地址相對於索引的偏移,所以數組元素可以隨機訪問。

鏈式存儲是分散存儲,通過節點的指針域來建立一個節點與其下一個鄰接節點的聯系。鏈式存儲的頭指針雖然也是整個鏈式數據結構的基準地址,但要找到某一節點,需要順序訪問,從頭節點開始,順著每一個節點的指針域的值,一個節點一個節點地挼。

我們把鏈表中第一個節點的存儲位置叫做 頭指針 , 那麼整個鏈表的存取就必須是從頭指針開始進行了。之後的每一個節點, 其實就是上一個的後繼指針指向的位置。有時,我們為了更加方便地對鏈表進行操作,會在單鏈表的第一個結點前附設一個結點,稱為 頭節點 。頭節點的數據域可以不存儲任何信息,誰叫它是第一個呢,有這個特權。也可以存儲如線性表的長度等附加信息,頭節點的指針域存儲指向第一個節點的指針。

是否使用頭節點,在實現鏈表的常用操作時代碼的寫法稍有區別,使用頭節點的方法代碼較為簡潔。同時,也可以將這個表頭節點指針封裝到一個結構體中,並在結構體中增加鏈表長度等信息。

1 使用頭節點的鏈表表示

加頭結點的優點:

1)鏈表第一個位置的操作無需特殊處理;

2)將空表和非空表的處理統一。

2 不使用頭節點的鏈表表示

3 鏈表和鏈表節點用不同的結構體來表示

鏈表用一個結構體來描述,封裝一個節點指針做表頭,並增加一個鏈表長度變數,需要時也可以增加一個節點指針做表尾。

-End-