定義:
線性表簡稱表,是n(n ≥0)個具有相同型別的資料元素的有限序列,線性表中資料元素的個數稱為線性表的長度。長度等於0時稱空表,乙個非空表通常記作:
l=(a1,a2,......an )
線性表的性質:
1.有限性:元素個數有限
2.相同性:元素型別相同
3.順序性:除首位元素外,相鄰元素都有前驅和後繼
2.1.2線性表的抽象資料型別定義
i nitlist
前置條件:線性表不存在
輸入:無
功能:線性表的初始化
輸出:無
後置條件:乙個空的線性表
dsetroylist
前置條件:線性表已存在
輸入:無
功能:銷毀線性表
輸出:無
後置條件:釋放線性表所占有的儲存空間
length
前置條件:線性表已存在
輸入:無
功能:求線性表的長度
輸出:線性表中資料元素的個數
後置條件:線性表不變
get前置條件:線性表已存在
輸入:元素的序號i
輸出:如果序號合法,返回序號為i的元素值,否則丟擲異常
後置條件:線性表不變
定義:線性表的順序儲存結構稱為順序表
順序表有參建構函式seqlist
template
sqelist::seqlist(datatype a[ ],int n)
if (n>maxsize)throw"引數非法";
for(i=0;idata[i ]=a[ i];
length=n;
template
datatype seqlist::get(int i)
if(i<1||i>length)throw" 查詢位置非法";
else return data[i-1];
template
int seqlist::locate(datatype x)
for(i=0;iif(data[i]==x)returni+1;
return0;
template
void seqlist::insert(int i,datatype x)
if(length>=maxsize)throw"上溢";
if(i<1||i>length+1)throw"位置";
for(j=length;j>i;j--)
data[j]=data[j-1];
data[i-1]=x;
length++;
template
datatype seqlist::delete(int i)
if (length==0)throw"下溢" ;
if(i<1||i>length)throw"位置";
x=data[i-1];
for(j=i;jdata[j-1]=data[j];
length--;
return x;
template
int linklist::length()
p=first->next;count=0;
while(p!=null)
p=p->next;
count++;
return count;
template
datatype linklist::get(int i)
p=first->next;count=1;
while(p!=null&&countp=p->next;
count++;
if(p==null)throw"位置";
else return p->data;
template
datatype linklist::get(int i)
p=first->next;count=1;
while(p!=null&&countp=p->next;
count++;
if(p==null)throw"位置";
else return p->data;
template
linklist::linklist()
first=new node;
first->next=null;
template
linklist::~linklist()
while(first!=null)
q=first;
first=first->next;
delete q;
在單鏈表中,如果將終端結點的指標域由空指標改為指向頭結點,就使整個單鏈表形成乙個環,這種頭尾相接的單鏈表被稱為迴圈單鏈表,簡稱迴圈鍊錶。
第二章線性表
2 1線性表的邏輯結構 1 線性表是n 0個具有相同型別的資料元素的有限序列。空表是長度等於零的線性表。2 特性 有限性 相同性 順序型。2 2線性表的順序儲存結構及實現 1 c 中陣列的下標是從0開始的,而線性表中元素的序號是從1開始的。線性表中第i個元素儲存在陣列中下標為i 1的位置。2 順序表...
第二章 線性表
寫在前邊的話寫 好比寫詩,資料結構就好比唐詩三百首,熟讀並默寫這是基本功能,所以要閒的沒事可以在紙上多寫 線性表的定義和基本操作 線性表的實現 2.1順序儲存結構 2.2鏈式儲存結構 2.3線性表的應用 線性表的邏輯特性 只有乙個表頭元素,只有乙個表尾元素,表頭元素沒有前驅,表尾元素沒有後繼元素,其...
第二章 線性表
第二章 線性表 順序表和煉表的比較 1 基於空間的比較 1 儲存分配的方式 順序表的儲存空間是一次性分配的,鍊錶的儲存卡空間是多次分配的。2 儲存密度 儲存密度 結點域值所佔的儲存量 結點結構所佔的儲存總量 順序表的儲存密度 1,鍊錶的儲存密度 1 因為結點中有指標域 2 基於時間的比較 1 訪問方...