線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素,使得線性表在邏輯結構上相鄰的元素儲存在連續的物理儲存單元中,即:通過資料元素物理儲存的連續性來反應元素之間邏輯上的相鄰關係。採用順序儲存結構儲存的線性表通常簡稱為順序表。順序儲存線性表的特點
線性表的邏輯順序與物理順序一致;
資料元素之間的關係是以元素在計算機內「物理位置相鄰」來體現。
下面我們逐個實現順序表的基本操作
typedef
struct
sqlist;
void
initlist
(sqlist *l)
//初始化順序表l
只需將順序表的長度置為0即可
int
listlength
(sqlist *l)
//返回順序表的元素個數
int
getelem
(sqlist l,
int i,elemtype *e)
//獲得i位置的元素,用e返回
*e = l.data[i -1]
;return0;
}
int
listinsert
(sqlist *l,
int i, elemtype e)
//在i位置插入乙個元素e
if(i <
1|| i > l->length +1)
for(k = l->length -
1; k >= i -
1; k--
)//將要插入元素後的每個元素都向後移一位
l->data[k +1]
= l->data[k]
; l->data[i -1]
= e;
//將新元素插入
l->length++
;return1;
}
int
listdelete
(sqlist *l,
int i, elemtype *e)
//刪除i位置的元素,並用e返回其值
*e = l->data[i -1]
;for
(k = i; k < l->length; k++
)//將刪除元素後的每個元素前移一位
l->data[k -1]
= l->data[k]
; l->length--
;return0;
}
int
locateelem
(sqlist l, elemtype e)
//查詢元素e,如查到返回該元素的位置,反之,返回0
}return0;
}
int
showlist
(sqlist l)
//列印順序表
for(i =
0; i < l.length; i++
)return1;
}
到此,順序表的基本操作就已經完成了,下面附上原始碼原始碼:
#include
#include
#include
#define maxsize 100
//順序表的最大長度
typedef
int elemtype;
//元素型別
typedef
struct
sqlist;
void
initlist
(sqlist *l)
//初始化順序表l
intlistlength
(sqlist *l)
//返回順序表的元素個數
intgetelem
(sqlist l,
int i,elemtype *e)
//獲得i位置的元素,用e返回
*e = l.data[i -1]
;return0;
}int
listinsert
(sqlist *l,
int i, elemtype e)
//在i位置插入乙個元素e
if(i <
1|| i > l->length +1)
for(k = l->length -
1; k >= i -
1; k--
)//將要插入元素後的每個元素都向後移一位
l->data[k +1]
= l->data[k]
; l->data[i -1]
= e;
//將新元素插入
l->length++
;return1;
}int
listdelete
(sqlist *l,
int i, elemtype *e)
//刪除i位置的元素,並用e返回其值
*e = l->data[i -1]
;for
(k = i; k < l->length; k++
)//將刪除元素後的每個元素前移一位
l->data[k -1]
= l->data[k]
; l->length--
;return0;
}int
locateelem
(sqlist l, elemtype e)
//查詢元素e,如查到返回該元素的位置,反之,返回0
}return0;
}int
showlist
(sqlist l)
//列印順序表
for(i =
0; i < l.length; i++
)return1;
}int
main()
資料結構 順序表(C語言實現)
順序表的定義是 把線性表中所有表項按照其邏輯順序依次儲存到從計算機儲存中指定儲存位置開始的一塊連續的儲存空間中。這樣,線性表中第乙個表項的儲存位置就是被指定的儲存位置,第i個表項 2 i n 的儲存位置緊接在第i 1個表項的儲存位置的後面。假設順序表中每個表項的資料型別為t,則每個表項所占用儲存空間...
C語言實現順序表 資料結構
include include 需求,寫乙個順序線性表,儲存乙個位址位置 define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 define true 1 define false 0 define ...
資料結構 順序表(C語言實現)
順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪查改。順序表一般可以分為靜態順序表 使用定長陣列儲存 和動態順序表 使用動態開闢的陣列儲存 本次實現的是動態順序表,具體 如下 common.h include include includ...