list_init_size : 線性表初始資料元素容量
infeasible :0
二、線性表結構體
typedef struct
sqlist;
三、13個基本操作
建立線性表,清空線性表,銷毀線性表
判空線性表,判滿線性表,獲得當前資料元素個數
獲得指定位置的資料元素,定位符合一定條件的資料元素
獲得乙個資料元素的前驅,獲得乙個元素的後繼
插入資料元素,刪除資料元素
遍歷線性表
1、建立線性表
初始條件:乙個未初始化的線性表結構體
int initlist(seqlist &l)
2、清空線性表
初始條件:線性表存在
操作結果:清空線性表(將當前元素個數賦值0,清除線性表中的元素)
int clearlist(seqlist &l)
3、銷毀線性表
初始條件:線性表已存在
操作結果:銷毀線性表
status destroy(seqlist &l)
4、判空線性表
初始條件:線性表存在
操作結果:線性表為空返回true,不為空返回false
bool listempty(seqlist l)//不需要對線性表的成員變數進行改變,所以不使用引用
5、判滿線性表
初始條件:線性表存在
操作結果:若線性表已滿返回true,否則返回false
bool listfull(sqlist l)
6、獲取線性表當前元素個數
初始條件:線性表已存在
操作結果:返回線性表當前元素個數
int listlength(seqlist l)
7、獲得指定位置的資料元素
初始條件:線性表存在
操作結果:獲得指定位置的資料元素並賦值給e
int getelem(sqlist l,int i, elemtype &e)
8、定位元素(獲得符合一定條件的資料元素的位序)
初始條件:線性表已存在
操作結果:返回l中第乙個與e滿足關係的元素的位序,若不存在返回0
(注意:compare()表示乙個關係判定函式,滿足返回值為1,否則返回值為2,使用函式指標,方便呼叫)
int locateelem(sqlist l,elemtype e,status(*compare)(elemtype,elemtype))
9、返回前驅
初始條件:線性表已存在,資料元素存在前驅
操作結果:查詢資料元素,若線性表中有該元素且前驅存在,將前驅拷貝給乙個與資料元素資料型別相同的變數;若前驅不存在,上述變數無定義
//返回前驅,equal要提前宣告
status priorelem(sqlist l,elemtype cur_e,elemtype &pre_e)
{ int a;
a=locateelem(l,cur_e,equal);
if(!a||a==1)
{ cout<<」查詢失敗」<
線性表(順序表) 基本操作 實現
定義 資料型別相同的n個元素構成的有限序列 所有呈遞增關係的整數不屬於線性表 無限 特點 線性表是線性結構,線性結構的基本特點是 除第乙個元素無直接前驅,最後乙個元素無直接後繼外,其他每個資料元素都有乙個前驅和後繼 位序 線性表中 第i個 元素,它的位序是從 1 開始的 區別陣列下標從 0 開始 用...
線性表基本操作
線性表基本操作,暑假把大一的 練習一遍。多多指教,謝謝 include include define true 1 define false 0 define ok 1 define error 0 define overflow 1 define list init size 100 typede...
線性表基本操作
線性表的基本操作,靜態分配實現 include include using namespace std define maxsize 50 typedef int elemtpye 靜態分配 typedef structsqlist 動態分配 插入元素,i代表插入的位置,從0開始 bool list...