#include#include#includeusing namespace std;
#define ms(a) memset(a,0,sizeof(a))
#define maxlength 100
/* 線性表陣列實現,定義乙個具有兩個域結構體,陣列下標為0的地方不存放元素,可以使位置i對應整數i;
第乙個域是陣列,存放表中元素,陣列長度要滿足最大需求;
第二個域是乙個整型變數last,是來表示最後乙個元素在陣列中的位置。
*/ typedef int elementtype;
struct list;
typedef int position;
//返回 last+1
position end(list l)
/* insert
將 x 插入到表 l 的 p 處
1.表已經滿了;
2.位置不符合,p<1 或者 p>last+1 ;
3.位置符合,將 p 及其後邊所有元素向後移一位,將 x 插入,last+1
*/
void insert(elementtype x,position p,list &l)
else if(p<1||p>l.last+1)
else
l.element[p]=x;
l.last++;
} }
/* delete
刪除線性表 l 中 位於 p 的元素
1. 位置不存在,p<1 或 p>last
2. 位置存在,從 p 開始,每位向前移動一位,last-1
*/ void delete(position p,list &l)
else
l.last--;
} }
/* locate
返回線性表中 x 的位置
利用的是陣列的遍歷
如果有多個,返回第乙個位置,
如果不存在,返回 last+1
*/
position locate(elementtype x,list l)
} return l.last+1;
}
/* retrieve
返回l中位置為p的元素
*/elementtype retrieve(position p,list l)
/* first
返回線性表中的第乙個位置下標
*/
position first(list l)
/* next
返回位置為 p 的下乙個單元的下標
*/position next(position p,list l)
/* previous
返回其位置為 p 的前乙個單元的下標
*/
position previous(position p,list l)
/* makenull
將線性表置空
*/
void makenull(list& l)
void print(list l)
else
cout<}
}int main()
線性表陣列實現
線性表 順序表示 用陣列實現,比較簡單 線性表的順序表示指的是用一組位址連續的儲存單元一次儲存線性表的資料元素,在高階語言程式設計中,陣列具有隨機訪問的特性,因此通常都用陣列來描述資料結構中的順序儲存結構,對於線性表,可以用一維陣列來實現 1 順序表的初始化 定義乙個object型別的陣列,可儲存任...
用陣列實現線性表
對於線性結構,有兩種儲存的方法,一種是使用 c語言中內建的陣列,這樣的結構成為 順序表 另一種使用指標,這樣的結構成為鍊錶。對於線性結構,有12種基本的操作,分別是 初始化 刪除順序表 清空順序表 判斷是否為空 遍歷 求表的長度 求某個元素在表中的位置 返回特定序號的元素 求某個元素的前乙個元素 求...
線性表之陣列實現
因為線性表的順序儲存結構是一種隨機訪問的儲存結構,同時線性表的長度可變,且所需最大儲存空間隨問題不同而不同,則在c語言中,用動態分配的一維陣列來實現。下面是線性表的動態分配順序儲存結構 typedef struct sqlist 該程式採用選單和結構體陣列,這樣方便測試每個功能的實現。同時將類c 轉...