線性表的順序存儲
1. 「線性表的順序存儲表優於鏈式存儲表示」這句話對嗎。
「線性表的順序存儲表優於鏈式存儲表示」這句話是不正確的,以偏蓋全。
具體解釋為:
順序存儲需要開辟一個定長的空間,讀寫速度快,缺點不可擴充容量(如果要擴充需要開辟一個新的足夠大的空間把原來的數據重寫進去)
鏈式存儲無需擔心容量問題,讀寫速度相對慢些,由於要存儲下一個數據的地址所以需要的存儲空間比順序存儲大。
綜上所述,如果元素個數已知,且插入刪除較少的可以使用順序結構,而對於頻繁有插入刪除操作,元素個數未知的,最好使用鏈式結構,編程時可結合要處理的數據的特點設計數據結構的。
2. 線性存儲結構就是順序存儲結構嗎線性表是線性存儲結構嗎
不是,他們的關系可以如圖所示。線性表包括順序存儲結構和鏈式存儲結構。
拓展資料:
線性表的劃分是從數據的邏輯結構上進行的。線性指的是在數據的邏輯結構上是線性的。即在數據元素的非空有限集中
(1)存在唯一的一個被稱作「第一個」的數據元素,(2)存在唯一的一個被稱作「最後一個」的數據元素,(3)除第一個外,集合中的每個數據元素均只有一個前繼元素,(4)除最後一個外,集合中的每個數據元素均只有一個後繼元素。
那麼對於線性表,從存儲結構上分,可以有順序存儲結構和鏈式存儲結構。順序存儲結構包括順序表、順序隊列和順序棧;鏈式存儲結構包括鏈表、鏈隊列和鏈棧。
3. 線性表的順序存儲結構和一維數組有什麼區別哪個是靜態存儲空間
順序表是計算機內以一維數組形式表示的線性表,
線性表有鏈式存儲存與順序儲存兩種方式:
1,順序儲存結構是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。
2,鏈式存儲是線性表採用指針連接的方式存儲。
線性表的長度是隨著線性表的插入刪除操作的進行而變化的,在任意時刻線性表的長度小於等於數組的長度,線性表的順序儲存是動態的,而一維數組是靜態的。
4. 線性表的鏈式存儲結構和順序存儲結構的區別
順序存儲結構就是用一組地址連續的存儲單元依次存儲該線性表中的各個元素.由於表中各個元素具有相同的屬性,所以佔用的存儲空間相同.因此,在內存中可以通過地址計算直接存取線性表中的任一元素.這種結構的特點是邏輯上相鄰的元素物理上也相鄰.用順序結構存儲的線性表稱作順序表.
線性表按鏈式存儲時,每個數據元素
(結點)的存儲包括數據區和指針區兩個部分.數據區存放結點本身的數據,指針區存放其後繼元素的地址
(沒有後繼元素時設置為空字元(Null)..只要知道該線性表的起始地址
(記錄在頭指針中),表中的各個元素就可通過其間的鏈接關系逐步找到
5. 線性表的順序存儲結構是以什麼來表示數據元素之間的邏輯關系的
線性表是最基本、最簡單、也是最常用的一種數據結構。線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列。
線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、隊列、字元串等特殊形式使用。
順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像(sequential mapping)。它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
由此得到的存儲結構為順序存儲結構,通常順序存儲結構是藉助於計算機程序設計語言(例如c/c++)的數組來描述的。
順序存儲結構的主要優點是節省存儲空間,因為分配給數據的存儲單元全用存放結點的數據(不考慮c/c++語言中數組需指定大小的情況),結點之間的邏輯關系沒有佔用額外的存儲空間。
採用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。但順序存儲方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。
推薦課程:C語言教程。
線性表順序存儲結構的結構代碼:
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length; // 線性表當前長度
} SqList;
順序存儲結構封裝需要三個屬性:
存儲空間的起始位置,數組data,它的存儲位置就是線性表存儲空間的存儲位置。
線性表的最大存儲容量:數組的長度MaxSize。
線性表的當前長度:length。
注意:數組的長度與線性表的當前長度需要區分一下:數組的長度是存放線性表的存儲空間的總長度,一般初始化後不變。而線性表的當前長度是線性表中元素的個數,是會變化的。
線性表順序存儲結構的優缺點
線性表的順序存儲結構,在存、讀數據時,不管是哪個位置,時間復雜度都是O(1)。而在插入或刪除時,時間復雜度都是O(n)。
這就說明,它比較適合元素個數比較穩定,不經常插上和刪除元素,而更多的操作是存取數據的應用。
優點:
無須為表示表中元素之間的邏輯關系而增加額外的存儲空間。
可以快速地存取表中任意位置的元素。
缺點:
插上和刪除操作需要移動大量元素。
當線性表長度變化較大時,難以確定存儲空間的容量。
容易造成存儲空間的「碎片」
6. 在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在物理位置上並不一定緊鄰,是對是錯
是錯的,在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在存儲位置上一定是相鄰的,所以說題目中的說法是錯誤的。
順序存儲結構是存儲結構類型中的一種,該結構是把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關系由存儲單元的鄰接關系來體現。
在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。
(6)線性表的順序存儲擴展閱讀:
順序存儲結構的優缺點:
優點:隨機存取表中元素、儲存密度大。
缺點:插入和刪除操作需要移動元素。
線性表的特徵:
1、集合中必存在唯一的一個「第一元素」。
2、集合中必存在唯一的一個「最後元素」。
3、除最後一個元素之外,均有唯一的後繼(後件)。
4、除第一個元素之外,均有唯一的前驅(前件)。
線性表的結構特點:
1、均勻性,雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。
2、有序性,各數據元素在線性表中的位置只取決於它們的序號,數據元素之前的相對位置是線性的,即存在唯一的「第一個」和「最後一個」的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素和後面均只有一個數據元素。
參考資料來源:網路-順序存儲結構
參考資料來源:網路-線性表
7. 線性表的存儲方式即可是順序方式
( T )1.線性表若採用鏈式存儲表示時所有結點之間的存儲單元地址可連續可不連續。
( T)2. 棧和隊列的存儲方式既可是順序方式,也可是鏈接方式。
( T )3.二維數組是其數組元素為線性表的線性表。
( T )4. 對於一棵非空二叉樹,它的根結點作為第一層,則它的第i層上最多能有2i—1個結點。
( F)5.線性表的順序存儲表示優於鏈式存儲表示。
( F )6. 具有12個結點的完全二叉樹有5個度為2的結點。
( F )7.線性表的邏輯順序與物理順序總是一致的。
( F )8. 線性表在順序存儲時,邏輯上相鄰的元素未必在存儲的物理位置次序上相鄰。
( T )9.每種數據結構都應具備三種基本運算:插入、刪除和搜索。
三、 單項選擇題
( C )1.數據在計算機存儲器內表示時,物理地址與邏輯地址相同並且是連續的,稱之為:
(A)存儲結構 (B)邏輯結構 (C)順序存儲結構 (D)鏈式存儲結構
( B )2.一個順序表第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是 b
(A)110 (B)108 (C)100 (D)120
( D)3. 下面關於線性表的敘述中,錯誤的為()
A. 順序表使用一維數組實現的線性表B. 順序表必須佔用一片連續的存儲單元
C. 順序表的空間利用率高於鏈表D. 在鏈表中,每個結點只有一個鏈域
( C )4.請指出在順序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找關鍵碼12需做多少次關鍵碼比較。 (C)
A.2 B.3 C.4 D.5
( B )5. 在需要經常查找結點的前驅與後繼的場合中,使用 比較合適。
A. 單鏈表B. 雙鏈表C. 順序表D. 循環鏈表( B )
( B )6 向一個有127個元素的順序表中插入一個新元素並保持原來順序不變,平均要移動 個元素
(A)8 (B)63.5 (C)63 (D)7
( D )7. 判定一個隊列QU(最多元素為m0)為滿隊列的條件是_______
(A)QU->rear - QU->front = = m0 (B)QU->rear - QU->front -1= = m0
(C)QU->front = = QU->rear (D)QU->front = = QU->rear+1
( C )8. 若已知一個棧的入棧序列是1,2,3,…,n,其輸出序列為p1,p2,p3,…,pn,若p1=n,則pi為
(A)i (B)n=i (C)n-i+1 (D)不確定
( C )9.演算法分析的目的是:
A. 找出數據結構的合理性B. 研究演算法中的輸入/輸出關系
C. 分析演算法的效率以求改進D. 分析演算法的易讀性
( C )10按照二叉樹的定義,具有3 個結點的二叉樹有()種。
A.3 B.4 C.5 D.6
答案是正確的 呵呵 你這些題的答案我都有 還有你以後的答案我也有 要的話以後再問我要啊
8. 線性表的順序存儲的缺點
線性順序存儲的缺點:(1)插入或刪除的運算效率很低。在順序存儲的線性表中,插入或刪除數據元素時需要移動大量的數據元素;(2)線性表的順序存儲結構下,線性表的存儲空間不便於擴充;(3)線性表的順序結構不便於對存儲空間的動態分配。
9. 線性表的順序存儲結構是隨機存取的
可以參考下面幾種解釋
1、解釋一:
順序存儲結構的地址在內存中是連續的所以可以通過計算地址實現隨機存取,與此相對 鏈式存儲結構的存儲地址不一定連續,只能通過第個結點的指針順序存取
2、解釋二:
線性表的順序存儲結構可以通過線性表的首址加偏移的方法計算出來第i個數據的位置a+i*sizeof(單個結構)而線性表的鏈式存儲結構要訪問第i個數據,就必須先訪問前面的i-1個數據
(9)線性表的順序存儲擴展閱讀:
線性表主要由順序表示或鏈式表示,在實際應用中,常以棧、隊列、字元串等特殊形式使用,順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像,順序存儲結構是隨機存取的。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。
10. 什麼是線性表線性表有哪兩種存儲結構它們是如何存儲數據元素的各有什麼優點
線性表:有n(n>0)的數據元素a1,a2,a3,.....,an組成的有限序列。
兩種存儲結構:
順序存儲結構:存取較快,插入刪除較麻煩。
鏈式存儲結構:存取較慢,插入刪除叫簡單。
存儲數據元素:
順序存儲結構:直接存取。優點空間連續,位置明確。
鏈式存儲結構:由於鏈表特徵,需要從表頭掃面。優點空間分散,位置不明確。
線性表中數據元素之間的關系是一對一的關系,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的,注意,這句話只適用大部分線性表,而不是全部。比如,循環鏈表邏輯層次上也是一種線性表。
(10)線性表的順序存儲擴展閱讀:
線性表中的個數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有且僅有一個直接前驅。