,,对于线性表,我们可以对其元素进行简单的获取,插入以及删除操作。
,,先来讲讲元素的获取操作,完整来讲,就是对,将线性表L第i个位置的元素返回,若成功,则返回1,且将我第个位置的元素的值赋给* e;若失败,则返回0。代码如下:
int GetElem (L, SqList int 我,int * e ) { ,,,, ,,,if (,小姐:& lt;, 1, | |,小姐:祝辞,L→length | |, L→length ==, 0,) ,,,,,,,return 0; ,,,,,,, ,,,* e =, L→数据(张); ,,,return 1; }
若是在代码中使用宏定义则是比较好的,因为方便数据的修改,以下代码是宏定义版:
# define Ok ,,,, 1 # define ERROR 0 # define TRUE ,, 1 # define FALSE 0 typedef int 地位; Status GetElem (L, SqList int 我,ElemType * e ) { ,,,, ,,,if (,小姐:& lt;, 1, | |,小姐:祝辞,L→length | |, L→length ==, 0,) ,,,,,,,return 误差; ,,,,,,, ,,,* e =, L→数据(张); ,,,, ,,,return 好; }
接下来就是对元素的插入操作。在插入元素之前,我们首先要判断插入元素的位置是否正确以及线性表的空间是否充足,若是都没问题,那么可以执行插入操作。代码如下:
int ListInsert (, SqList * L, int 我,int e ) { ,,,, ,,,int k; ,,,, ,,,if (,小姐:& lt;, 1, | |,小姐:祝辞,L→length +, 1,) ,,,,,,,return 0; ,,,if (, L→length 祝辞=,MAXSIZE ) ,,,,,,,return 0; ,,,, ,,,if (=,小姐:& lt; L→length ),,,,,//若插入数据位置不在表尾 ,,,,,,,for (=, k L→length 作用;1;,k 祝辞=,小姐:安康;1;,——k ) ,,,,,,,,,,,L→数据[k + 1],=, L→数据[k]; ,,,,,,, ,,,L→数据(张),=,e; ,,,, ,,,L→长度+ +; ,,,, ,,,return 1; }
同样的,再用宏定义的方式写一遍代码。代码如下:
Status ListInsert (, SqList * L, int 我,ElemType e ) { ,,,int k; ,,,if (,小姐:& lt;, 1, | |,小姐:祝辞,L→length +, 1,) ,,,,,,,return 误差; ,,,if (, L→length 祝辞=,MAXSIZE ) ,,,,,,,return 误差; ,,,,,,, ,,,if (=,小姐:& lt; L→length ) ,,,,,,,for (=, k L→length 作用;1;,k 祝辞=,小姐:安康;1;,——k ) ,,,,,,,,,,,L→数据[k + 1],=, L→数据[k]; ,,,, ,,,L→数据[小姐,安康;1],=,e; ,,,, ,,,L→长度+ +; ,,,, ,,,return 好; }
最后,就是对线性表进行元素的删除操作。删除相应位置的元素,首先就要判断所要删除位置是否正确,其次就是对线性表进行判断,表长是是否为0,若为0,则删除出错,若不为0,则进行相应的删除操作。代码如下:
int ListDelete (, SqList * L, int 我,int * e ) { ,,,int k; ,,,, ,,,if (,小姐:& lt;, 1, | |,小姐:祝辞,L→length ) ,,,,,,,return 0; ,,,if (, L→length ==, 0,) ,,,,,,,return 0; ,,,, ,,,,* e =, L→数据(张),,,, ,,,if (,小姐:& lt;, L→length ),,,,,,//如果删除的不是最后一个位置(删除的不是最后一个元素) ,,,,,,,for (=, k 我;,k & lt;, L→长度;,+ + k ) ,,,,,,,,,,,L→数据(k - 1),=, L→数据[k]; ,,,, ,,,L→长度,; null null null null null null null null null null null null null null null null null null null null null null线性表的顺序存储结构元素的获取,插入及删除