voidClearList(S_LIST* list){int i;
S_NODE* p =NULL;if(list ==NULL)return;
p = list->head;for(i =0; i < list->size; i++){
p->element =0;
p = p->next;}}
6、是否为空
intListEmpty(S_LIST list){return list.size ==0;}
7、链表长度
intListLength(S_LIST list){return list.size;}
8、按索引获取元素
intGetElem(S_LIST list,int index,int* ele){int i;
S_NODE* p =NULL;if(list.head ==NULL|| ele ==NULL|| index >= list.size)return-1;
p = list.head;for(i =0; i < index; i++){
p = p->next;}*ele = p->element;}
9、按要求判断元素
intcompare(int ele,int data){return ele > data;}intLocateElem(S_LIST list,int ele,int(*compare)(int,int)){
S_NODE* p =NULL;int i;if(compare ==NULL|| list.head ==NULL)return-1;
p = list.head;for(i =0; i < list.size; i++){if(compare(p->element, ele))return i;
p = p->next;}return-1;}
10、返回前驱节点元素值
intPriorElem(S_LIST list,int ele,int* pre_e){
S_NODE* p =NULL;int i;if(pre_e ==NULL|| list.head ==NULL)return-1;
p = list.head;*pre_e = p->element;for(i =0; i < list.size; i++){if(p->element == ele)return;*pre_e = p->element;
p = p->next;}return0;}
11、返回后驱节点元素值
intNextElem(S_LIST list,int ele,int* next_e){
S_NODE* p =NULL;int i;if(next_e ==NULL|| list.head ==NULL)return-1;
p = list.head;for(i =0; i < list.size; i++){if(p->element == ele)break;
p = p->next;}
p = p->next;*next_e = p->element;return0;}
12、删除某个元素
intListDelete(S_LIST* list,int index,int* ele){
S_NODE* p =NULL;
S_NODE* q =NULL;int i;if(list ==NULL|| ele ==NULL)return-1;
p = list->head;for(i =0; i < index -1; i++){
p = p->next;}
q = p->next;*ele = q->element;
p->next = q->next;free(q);(list->size)--;return0;}
13、打印
voidPrintList(S_LIST list){int i;
S_NODE* p =NULL;if(list.head ==NULL)return;
p = list.head;printf("List contains %d: ", list.size);for(i =0; i < list.size; i++){printf("%d ", p->element);
p = p->next;}printf("\n");}