線性表之順序表儲存結構

2021-07-16 02:51:04 字數 1826 閱讀 4444

順序表的儲存結構適用於一些資料相對穩定的線性表,如:學生學籍,公司職工資訊。

最基本的線性表操作:新增,刪除,插入,清空,查詢,判空,判滿。

順序表的儲存結構一般用陣列儲存。

首先定義乙個結構體,用於儲存線性表的資料,線性表長度,以及線性表的中元素個數。

struct list

第一步就是初始化表

void listinit(struct list *l)

; //分配儲存空間

l->listlen = n; //表長

l->listcount = 0; //元素的元素

}

第二步:新增元素。新增元素之前要先檢視表是否已滿。

int listfull(struct list l)

然後再定義新增元素的方法

int listadd(struct list *l,int elem)

l->elem[l->listcount] = elem;

l->listcount++;

return 1;

}

第三步:刪除元素,刪除元素之前要判斷表是否為空以及刪除位置是否正確

int listempty(struct list l)

然後再定義刪除元素的方法。

int listdel(struct list *l,int pos)

if(pos < 1 || pos > l->listcount)

for(i=pos-1;ilistcount;i++)

l->listcount--;

return 1;

}

第四步:插入元素,要指定插入位置和插入元素。插入之前要判斷表是否滿以及插入位置是否正確。

int listinsert(struct list *l,int pos,int elem)

if(pos < 1 || pos > l->listcount+1)

for(i=l->listcount;i>=pos;i--)

l->elem[pos-1] = elem;

l->listcount++;

return 1;

}

第五步:清空表,其實清空表就是將元素個數置為0即可。下次使用時,再次加入的資料會覆蓋以前的資料。

void listtoempty(struct list *l)

第六步:查詢,查詢方式有兩種:1.按位置查詢。2.按值查詢。查詢之前要先判空,若為空則沒必要進行查詢操作,若按位置查詢,還要進行位置判斷。

1.按位置查詢

int listfind(struct list l,int pos)

if(pos < 1 || pos > l.listcount)

return l.elem[pos-1];

}

2.按值查詢

int listfind(struct list l,int elem)

for(i = 1;i

以上就是順序結構的線性表的基本操作,還有些高階操作,如排序,合併兩個表等。有興趣的可自行查詢,當然後面也會涉及到。下次是鏈式儲存結構的線性表。

線性表 順序儲存結構之 順序表

順序表 用順序方法儲存的線性表也叫做順序表 如果乙個線性表用一組連續的儲存單元依次儲存線性表的資料元素,那麼這個表就是順序表。類似陣列 資料元素在計算機內 物理位置相鄰 例 如果用 address ai 表示資料元素ai的儲存位置,l表示資料元素占用的儲存單元,則 address ai addres...

線性表 線性表的順序儲存結構

線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...

線性表 線性表的順序儲存結構

include include using namespace std define ok 1 define error 0 define list init size 100 define listincrement 10 typedef int status typedef int elemty...