❶ 線性表存儲結構有哪幾種
線性表這種抽象結構在實現是有數組實現和鏈表實現兩種存儲結構。
數組實現我們知道在定義的時候要固定長度,因此存儲數據過多時會溢出,過少時浪費存儲空間,但是相關操作實現起來比較簡單。
鏈表實現是動態獲取內存單元,存儲數據時基本不受空間限制(受內存大小限制),幾乎不會浪費存儲空間,但是相關操作實現起來比數組復雜一點。
❷ 線性表- 順序存儲結構- 順序表
順序表
順序表的定義
( ) 順序存儲方法
即把線性表的結點按邏輯次序依次存放在一組地址連續的存儲單元里的方法
( ) 順序表(Sequential List)
用順序存儲方法存儲的線性表簡稱為順序表(Sequential List)
結點a i 的存儲地址
不失一般性 設線性表中所有結點的類型相同 則每個結點所佔用存儲空間大小亦相同 假設表中每個結點佔用c個存儲單元 其中第一個單
元的存儲地址則是該結點的存儲地址 並設表中開始結點a 的存儲地址(簡稱為基地址)是LOC(a ) 那麼結點a i 的存儲地址LOC(a i
)可通過下式計算
LOC(a i )= LOC(a )+(i )*c ≤i≤n
注意
在順序表中 每個結點a i 的存儲地址是該結點在表中的位置i的線性函數 只要知道基地址和每個結點的大小 就可在相同時間內求出任一結
點的存儲地址 是一種 隨機存取結構
順序表類型定義
#define ListSize //表空間的大小可根據實際需要而定 這里假設為
typedef int DataType; //DataType的類型可根據實際情況而定 這里假設為int
typedef struct {
DataType data[ListSize];//向量data用於存放表結點
int length;//當前的表長度
}SeqList;
注意
① 用向量這種順序存儲的數組類型存儲線性表的元素外 順序表還應該用一個變數來表示線性表的長度屬性 因此用結構類型來定義順序表類
型
② 存放線性表結點的向量空間的大小ListSize應仔細選值 使其既能滿足表結點的數目動態增加的需求 又不致於預先定義過大而浪費存儲
空間
③ 由於C語言中向量的下標從 開始 所以若L是SeqList類型的順序表 則線性表的開始結點a 和終端結點a n 分別存儲在L data[ ]和
L Data[L length ]中
④ 若L是SeqList類型的指針變數 則a 和a n 分別存儲在L >data[ ]和L >data[L >length ]中
順序表的特點
順序表是用向量實現的線性表 向量的下標可以看作結點的相對地址 因此順序表的的特點是邏輯上相鄰的結點其物理位置亦相鄰
lishixin/Article/program/sjjg/201311/23372
❸ 線性表的順序存儲結構是隨機存取的
可以參考下面幾種解釋
1、解釋一:
順序存儲結構的地址在內存中是連續的所以可以通過計算地址實現隨機存取,與此相對 鏈式存儲結構的存儲地址不一定連續,只能通過第個結點的指針順序存取
2、解釋二:
線性表的順序存儲結構可以通過線性表的首址加偏移的方法計算出來第i個數據的位置a+i*sizeof(單個結構)而線性表的鏈式存儲結構要訪問第i個數據,就必須先訪問前面的i-1個數據
(3)線性表動態存儲順序結構擴展閱讀:
線性表主要由順序表示或鏈式表示,在實際應用中,常以棧、隊列、字元串等特殊形式使用,順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像,順序存儲結構是隨機存取的。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。
❹ 線性表的鏈式存儲結構優於順序存儲結構
線性表的鏈式存儲結構優於順序存儲結構,這句話是錯誤的。
線性表的存儲結構:
線性表主要由順序表示或鏈式表示。在實際應用中,常以棧、隊列、字元串等特殊形式使用。順序表示指的是用一組地址連續的存儲單元依次存儲線性表的數據元素,稱為線性表的順序存儲結構或順序映像。它以「物理位置相鄰」來表示線性表中數據元素間的邏輯關系,可隨機存取表中任一元素。
鏈式表示指的是用一組任意的存儲單元存儲線性表中的數據元素,明純稱為線性表的鏈式存儲結構。它的存儲單元可以是連續的,也可以是不連續的。在表示數據元素之間的邏輯關系時,除了存儲其本身的信息之外,還需存儲一個指示其直接後繼的信息(即直接後繼的存儲位置),這兩部分信息組成數據元素的存儲映像,稱為結點(node)。
它包括兩個域:存儲數據元素信息的域稱為數激卜咐據域;存儲直接後繼存儲位置的域稱為指針域。指針域中存儲的信息稱為指針或鏈。
❺ 數據結構線性表之線性表的順序存儲結構[1]
順序表定義
順序表 即用一組連續的存儲單元依次存放線性表的數據元素 若每個數據元素佔用c個存儲單元 並以所佔的第一個存儲單元地址作為這個數據元素的存儲位置 則表中任一元素ai的存儲地址為 LOC(ai)=LOC(a )+(i )*c ≤i≤n
順序表特點
為表中相鄰的元素ai和ai+ 賦以相鄰的存儲位置LOC(ai)和LOC(ai+ )
順序表的基本運算
順序表的建立
由於程序語言中的向量(一組數組)就是採用順序存儲表示 故可用向量這種數組類型來描述順序表 我們用結構類型來定義順序表類型 如下 輸入n個整數 產生一個存儲這些整數的順序表L的函數 如下
順序表的查找
在一個順序表中查找元素值為x的元素的函數 如下
順序表的插入
線性表的插入運算是指在表的第i( ≤i≤n)個位置上 插入一個新結點x 使長度為n的線性表(a … ai ai … an)變成長度為n+ 的線性表(a … ai ax ai … an) 插入操作分成兩階段 第一階段將位於插入點以後的數據元素依次向後移動 為新數據元騰出一個空間 然後在第二階段中將數據元素插入空擋 在一個順序表中第i個元素之前插入一個元素x的函數 如下
lishixin/Article/program/sjjg/201311/23508
❻ 數據結構之線性表的順序存儲[1]
線性表的順序存儲是線性表的一種最簡單最直接的存儲結構 它是用內存中的一段地址連續的存儲空間順序存放線性表的每一個元素 用這種存儲形式存儲的線性表我們稱其為順序表 在順序表中用內存中地址的線性關系表示線性表中數據元素之間的關系 這種用物理上的相鄰關系實現數據元素之間的邏輯相鄰關系簡單明了 如圖 所示 設 e 的存儲地址為Loc(e ) 每個數據元素佔d個位元組存儲單元 則第i個數據元素的地址為
Loc(ei)=Loc(e )+(i )*d ≤i≤n
這意味著只要知道順序表首地址和每個數據元素所佔地址單元的個數就可求出第i個數據元素的地址來 所以線性表的順序存儲結構是一種隨機存取的存儲結構 具有按數據元素的序號隨機存取的特點
線性表
順序表的內存表示
下標
數據元素
存儲地址
存儲元素
e
數據結構免費提供,內容來源於互聯網,本文歸原作者所有。
❼ 順序表是線性表的什麼存儲結構
順序表是在計算機內存中以數組的形式保存的線性表,線性表的順序存儲是指用一組地址連續的存儲單元依次存儲線性表中的各個元素、使得線性表中在邏輯結構上相鄰的數據元素存儲在相鄰的物理存儲單元中,即通過數據元素物理存儲的相鄰關系來反映數據元素之間邏輯上的相鄰關系,採用順序存儲結構的線性表通常稱為順序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元中。