第二章 線性表

2021-06-26 05:50:51 字數 2345 閱讀 9392

定義:

線性表簡稱表,是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 訪問方...