❶ 線性表的存儲結構
你好像把數據的邏輯結構與存儲結構搞混淆了。
數據的邏輯結構包括線性結構、樹、圖、集合這四種,在線性結構裡面又有線性表、棧、隊列棗鋒等等。
而數據的存儲結構只有兩種:順序存儲結構和鏈式存儲結構,這兩種存儲結構,前面一個是利用數據元素在存儲器中的相對凳仿晌位置表示其邏輯結構,另外一個是用指針來表示其邏輯關大御系。
結論:
線性結構的數據在存儲結構方面,既可能是順序存儲,也可能是鏈式存儲。
線性表是線性結構,也是順序存儲結構。
❷ 線性表的鏈式存儲結構優於順序存儲結構
線性表的鏈式存儲結構優於順序存儲結構,這句話是錯誤的。
線性表的存儲結構:
線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、隊列、字元串等特殊形式使用。順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像。它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,明純稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息(即直接後繼的存儲位置),這兩部分信息組成數據元素的存儲映像,稱為結點(node)。
它包括兩個域:存儲數據元素信息的域稱為數激卜咐據域;存儲直接後繼存儲位置的域稱為指針域。指針域中存儲的信息稱為指針或鏈。
❸ 什麼是線性表線性表有哪兩種存儲結構它們是如何存儲數據元素的各有什麼優點
線性表:有n(n>0)的數據元素a1,a2,a3,.....,an組成的有限序列。
兩種存儲結構:
順序存儲結構:存取較快,插入刪除較麻煩。
鏈式存儲結構:存取較慢,插入刪除叫簡單。
存儲數據元素:
順序存儲結構:直接存取。優點空間連續,位置明確。
鏈式存儲結構:由於鏈表特徵,需要從表頭掃面。優點空間分散,位置不明確。
線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的,注意,這句話只適用大部分線性表,而不是全部。比如,循環鏈表邏輯層次上也是一種線性表。
(3)線性表採用存儲結構擴展閱讀:
線性表中的個數n定義為線性表的長度,n=0時稱為空表。在非空表中每個數據元素都有一個確定的位置,如用ai表示數據元素,則i稱為數據元素ai在線性表中的位序。
線性表的相鄰元素之間存在著序偶關系。如用(a1,…,ai-1,ai,ai+1,…,an)表示一個順序表,則表中ai-1領先於ai,ai領先於ai+1,稱ai-1是ai的直接前驅元素,ai+1是ai的直接後繼元素。
當i=1,2,…,n-1時,ai有且僅有一個直接後繼,當i=2,3,…,n時,ai有且僅有一個直接前驅。
❹ 順序表是線性表的什麼存儲結構
順序表是在計算機內存中以數組的形式保存的線性表,線性表的順序存儲是指用一組地址連續的存儲單元依次存儲線性表中的各個元素、使得線性表中在邏輯結構上相鄰的數據元素存儲在相鄰的物理存儲單元中,即通過數據元素物理存儲的相鄰關系來反映數據元素之間邏輯上的相鄰關系,採用順序存儲結構的線性表通常稱為順序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元中。
❺ 線性表的兩種存儲結構各有哪些優缺點
線性表具有兩種存儲結構即順序存儲結構和鏈接存儲結構。
線性表的順序存儲結構可以直接存取數據元素,方便靈活、效率高,但插入、刪除操作時將會引起元素的大量移動,因而降低效率
而在鏈接存儲結構中內存採用動態分配,利用率高,但需增設指示結點之間關系的指針域,存取數據元素不如順序存儲方便,但結點的插入、刪除操作較簡單。
❻ 數據結構線性表的單鏈表存儲結構
線性表是一種數據元素有序的邏輯結構,通常採用順序存儲結構和鏈式存儲結構。線性表採用順序存儲結構時,有利用線性表長度的計算、線性表數據元素的存取和數據元素的遍歷,同時也從物理結構上反映了線性表數據元素的邏輯結構,有點類似於c語言中的數組,但是採用順序存儲結構時,插入和刪除數據元素時,要移動較多的數據元素;採用鏈表結構存儲的線性表,克服了插入和刪除數據元素時要移動較多元素的缺點,其只要尋找到需要插入和刪除的數據元素處,處理相應的指針就可以實現數據元素的插入和刪除,同時也和順序存儲的線性表一樣方便遍歷,但是其不利於計算線性表的長度,線性表的鏈表存儲結構有以下幾種常見類型:採用帶頭指針和頭結點的單鏈表、採用僅帶頭指針的單鏈表、帶頭指針和頭結點的循環鏈表、帶頭指針和尾結點的循環鏈表、雙向鏈表等形式。在實際應用中,結合順序表易於計算表長和鏈表易於插入和刪除的特點,實際一般採用兩者結合的一種單鏈表,其鏈表類型為帶有頭指針(含頭結點)和尾指針,以及含有線性表長度的分量,在一元多項式的運算中採用的就是這種鏈式存儲結構。此外,還有一種一般應用於無指針的高級語言中的靜態單鏈表的存儲結構。
❼ 線性表存儲結構有哪幾種
線性表這種抽象結構在實現是有數組實現和鏈表實現兩種存儲結構。
數組實現我們知道在定義的時候要固定長度,因此存儲數據過多時會溢出,過少時浪費存儲空間,但是相關操作實現起來比較簡單。
鏈表實現是動態獲取內存單元,存儲數據時基本不受空間限制(受內存大小限制),幾乎不會浪費存儲空間,但是相關操作實現起來比數組復雜一點。
❽ 怎麼選擇線性表的兩種存儲結構
(1)若線性表需頻繁查找卻很少進行插入和刪除操作,或其操作和元素在表中的位置密切相關時,宜採用順序表作為存儲結構;若線性表需頻繁插入和刪除時,則宜採用單鏈表為存儲結構。
(2)當線性表中元素個數變化較大或者未知時,最好使用單鏈表實現,而如果用戶事先知道線性表的大致長度,使用順序表的空間效率會更高。
總之,線性表的順序存儲結構和鏈式存儲結構各有優缺點,不能籠統地說哪種存儲結構更好,只能根據實際問題的具體需要,選擇合適的存儲結構。
❾ 線性表兩種 存儲結構各自的優缺點有哪些
線性表的鏈式存儲結構:
優點:
插入和刪除不需要移動插入時只需要對插入位置後的一個元素進行操作,不需要大量的移動元素。空間有效利用高。
缺點:
大量訪問操作時不如順序存儲結構,因為每次都需要從頭開始遍歷整個線性表直到找到相應的元素為止。
線性表的順序存儲結構:
優點:
可隨機存取表中任一元素。因為有下標可以操作可以快速的定位到指定位置的元素,但是不知道位置的話也需要順序遍歷。
缺點:
插入或刪除操作時,需大量移動元素。合適在很少進行插入和刪除運算的情況下。
(9)線性表採用存儲結構擴展閱讀:
線性表的特徵
集合中必存在唯一的一個「第一元素」。
集合中必存在唯一的一個 「最後元素」 。
除最後一個元素之外,均有唯一的後繼(後件)。
除第一個元素之外,均有唯一的前驅(前件)。
線性表的基本操作
MakeEmpty(L) 這是一個將L變為空表的方法。
Length(L) 返回表L的長度,即表中元素個數。
Get(L,i) 這是一個函數,函數值為L中位置i處的元素(1≤i≤n)。
Prior(L,i) 取i的前驅元素。
Next(L,i) 取i的後繼元素。
Locate(L,x) 這是一個函數,函數值為元素x在L中的位置。
Insert(L,i,x)在表L的位置i處插入元素x,將原占據位置i的元素及後面的元素都向後推一個位置。
Delete(L,p) 從表L中刪除位置p處的元素。
IsEmpty(L) 如果表L為空表(長度為0)則返回true,否則返回false。
Clear(L)清除所有元素。
Init(L)同第一個,初始化線性表為空。
Traverse(L)遍歷輸出所有元素。
Find(L,x)查找並返回元素。
Update(L,x)修改元素。
Sort(L)對所有元素重新按給定的條件排序。
strstr(string1,string2)用於字元數組的求string1中出現string2的首地址。
參考資料來源:網路-線性表
❿ 線性表鏈式存儲結構是什麼
線性表是一種邏輯結構,它有兩種存儲方式,順序存儲和鏈式存儲。
順序存儲對應的是順序表,鏈式存儲對應的有單鏈表,雙鏈表,循環鏈表以及靜態鏈表。
其中,線性表的鏈式存儲又稱為單鏈表。
註:雙鏈表、循環鏈表等都是由單鏈表演化而來。
單鏈表:一個後繼指針,一個頭結點和頭指針。每一個結點是存儲下一個結點的存儲位置,因此最後一個結點存儲null,也就是空值。
雙鏈表:雙鏈表結點中有兩個指針,prior和next,即有前驅指針和後繼指針,分別指向前驅和後繼結點。
循環鏈表:循環鏈表和單鏈表的區別在於最後一個結點的指針不是null(回到單鏈表的知識去看一下吧),而是指向頭結點,從而整個鏈表成為了一個環。
循環雙鏈表:循環雙鏈表中頭結點的指針prior指針還要指向表尾結點。
註:在循環雙鏈表L中,當循環雙鏈表為空表時,其頭結點的prior域和next域都等於L。
靜態鏈表:靜態鏈表是藉助數組來描述線性表的鏈式存儲結構。結點有data域和指針域next。按照我的理解:其實靜態鏈表和單鏈表在結構上差不太多,但是靜態鏈表又和順序表很像,可以把靜態鏈表看作是單鏈表和順序表的結合吧。
鏈式存儲結構就這幾種了。