線性表的順序存盤結構定義
一、線性表的介紹
線性表是最基本、最簡單、也是最常用的一種資料結構,
線性表中資料元素之間的關系是一對一的關系,即除了第一個和最后一個資料元素之外,其它資料元素都是首尾相接的(注意,這句話只適用大部分線性表,而不是全部,比如,回圈鏈表邏輯層次上也是一種線性表(存盤層次上屬于鏈式存盤),但是把最后一個資料元素的尾指標指向了首位結點),
二、什么是順序表?
1 :線性表的順序存盤稱為順序表(sequential list),其基本思zhunc想是用一段地址連續存盤單元的存循單元依次存盤線性表的資料元素,則第,如圖1所示,設順序表的每個元素占用c個存盤單位,則第i個元素存盤地址為:
LOC(ai)=LOC(a1)+(i-1)*c
LOC(ai)=LOC(a1)+(i-1)*c

圖1 順序表中元素ai的存盤地址
2: 容易看出,順序表中資料元素的存盤地址是其序號的線性函式,只要確定了存盤順序表的的起始地(即基地址),計算任意一個元素的存盤地址的時間是相等的,具有這一特點存盤結構稱為隨機存取結構,
三、陣列的長度和線性表的長度
1: 通常用一維陣列來實作順序表,也就是把線性表中相鄰的元素存盤在陣列中相鄰的位置,從而導致了資料元素的序號和在放它的陣列下標之間具有一一對應關系,如圖2所示,需要強調的是,C語言中陣列的下標是從0開始的,而線性表中元素的序號是從1開始的,也就是說,線性表中第i個元素存盤在陣列中下標為i-1的位置.
2: 陣列需要分配固定長度的陣列空間,因此,必須確定存放線性表的陣列空間的長度,因為在線性表中可以進行插入操作,則陣列的長度就要大于當前線性表的長度,用MaxSize表示陣列的長度,用
表示線性表的長度,如圖2所示,
圖2 陣列的長度和線性表的長度具有不同含義
下面給出順序表的存盤結構定義:
#define MaxSize 100 //假設順序表最多存放100個元素
typedef int Datarype; //定義線性表的資料型別,假設為int型
typedef struct
{
Datarype data[Maxsize]; //存放資料元素的陣列
int length; //線性表的長度
}SeqList; //順序表型別
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/226267.html
標籤:其他
