完整**
線性表:零個或多個資料元素的有限序列。
線性表分為 順序儲存方式 和 鏈式儲存方式。
這裡我們主要實現順序儲存方式的線性表及其一些功能。
線性表屬一種抽象資料型別,如int,float,double一樣 只是結構更加複雜一些。
下面是線性表一些函式實現一些功能
initlist
(sqlist *l) 初始化操作,建立乙個空的線性表
listempty
(sqlist *l) 若線性表為空,返回ture,否則返回false
clearlist
(sqlist *l) 將線性表清空
getelem
(sqlist l,
int i,elemtype *e) 將線性表l中的第i個位置元素值返回給e
locateelem
該元素在表中序號表示成功;否則,返回0表示失敗
listinsert
(sqlist *l,
listdelete
(sqlist *l,
int i,elemtype *e) 刪除線性表l中第i個位置元素,並用e返回其值
listlength
(sqlist l) 返回線性表元素l的元素個數
順序儲存定義
線性表的順序儲存結構,指的是用一段位址連續的儲存單元一次儲存線性表的資料元素。
順序儲存方式
這裡說明一下 「為什麼會有很多的typedef 和define 這種很多的替換 直接寫不應該會很方便嗎?」
typedef的一些名字的變化是為了後面的** 一些變數定義的解釋 便於**更好的理解
difine 控制一些常量 便於資料的整體改動 如果一些資料重複使用需要改動的話 再去細找會很容易出現錯誤
#define maxsize 100
typedef
int elemtype; 換一下名字更便於理解
typedef
struct
sqlist;
順序儲存插入與刪除
**實現
#define ok 1
#define error 0
typedef
int status ;
status getelem
(sqlist l,
int i,elemtype *e) 獲取元素操作
void
listinsert
(sqlist *l,
int i,elemtype e) 插入操作
status listdelete
(sqlist *l,
int i,elemtype *e) 刪除操作
線性表順序儲存結構的優缺點優點
缺點自己寫的完整**
一些功能的實現
#include
#define maxsize 100
#define ok 1
#define error 0
typedef
int elemtype;
typedef
int status ;
typedef
struct
sqlist;
void
initlist
(sqlist *l)
status listempty
(sqlist *l)
void
clearlist
(sqlist *l)
status getelem
(sqlist l,
int i,elemtype *e)
status locateelem
(sqlist l,elemtype e)
return error;
}void
listinsert
(sqlist *l,
int i,elemtype e)
status listdelete
(sqlist *l,
int i,elemtype *e)
intlistlength
(sqlist l)
intmain()
}return0;
}
線性表線性(順序)儲存結構
實現順序表的曾刪查操作 元素結構體 define maxsize 100 線性表的最大長度 typedef int elemtype elemtype為線性表元素的型別 typedef struct sequenlist 插入操作 bool insertinseqlist sequenlist l,...
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表 順序儲存結構
s1線性表的基本概念 1 有而且只有乙個 第一元素 2 有而且只有乙個 最後元素 3 除第一元素之外,其他元素都有唯一的直接前驅。4 除最後元素之外,其他元素都有唯一的直接後繼。s2計算公式 若第乙個元素的位址是a,每個元素占用的儲存空間為d,則陣列的第i個元素的位址可以用如下公式計算 loc i ...