計算機中線性表的存放結構主要有兩種:順序儲存結構和鏈式儲存結構。採用前者存放方式的線性表是順序表,採用後者的就是我們平時所說的鍊錶(線性鍊錶)。
這裡先對順序表的一些基本操作進行歸納和總結,鍊錶的將在後面的文章中歸納總結。
順序表的表示,一般都是借助一維陣列。c++語言定義其結構如下:
const int maxsize=100; /*常量表示線性表可能達到的最大長度*/
typedef struct
seqlist; /*使用資料結構seqlist定義變數*/
下面將依據以上資料結構進行舉例說明線性表的一些基本操作。
(一)查詢操作
(1)按序號查詢getdate(l,i)
由順序表的資料結構決定,直接使用l.elem[i-1]就可查詢到。
(2)按元素查詢locate(l,e)
演算法思想:從第乙個元素開始,依次將表中元素與e比較,若相等則查詢成功,返回元素序號;
若無元素與e相等,則查詢失敗。
演算法實現:
int locate(seqlist l,int e) /*這裡暫且使用int作為elemtype代表型別*/
l->elem[i-1]=e; /*插入資料*/
l->last++;
return ok;
}/*inslist*/
(三)刪除操作
演算法描述:類似於插入操作,除了最後乙個元素,再說刪除其中乙個元素時都需要移動其以後的元素。
(1)按序號刪除
演算法實現:
#define ok 1
#define error 0
int dellist(seqlist *l,int i,int *e)
l->last--;
return ok;
}/*dellist*/
(2)按元素刪除
演算法實現:
#define ok 1
#define error 0
int dellistbyelem(seqlist *l,int e,int *i)
l->last--;
retun ok;
}else /*沒有找到元素*/
else
}/*while*/
while(i<=la->last) /*la中元素有剩餘,將剩下的全插到lc後面*/
/*while*/
while(j<=lb->last) /*若lb中元素有剩餘,則將剩下的全插到lc後面*/
/*while*/
/*特別注意的是,last不是元素個數,是最後乙個元素的下標*/
lc->last = la->last +lb->last +1;
}/*merge*/
順序表的基本操作大致就是以上這些內容,若有錯誤之處,敬請指正!
接下來將會逐步更新資料結構的其他內容。
資料結構 順序表的基本操作
main include include define true 1 define error 0 define ok 1 define false 0 define overflow 2 typedef int status typedef int elemtype define list ini...
資料結構 順序表的基本操作
老規矩先來看一下題目 本題要求實現順序表元素的增 刪 查詢以及順序表輸出共4個基本操作函式。l是乙個順序表,函式status listinsert sq sqlist l,int pos,elemtype e 是在順序表的pos位置插入乙個元素e pos應該從1開始 函式status listdel...
資料結構 順序表的基本操作
順序表 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。順序表一般可以分為 順序表的元素型別 int public class myarraylist 增 重點 尾插 public void pushback int element...