/****************************************************************** 主函数 ******************************************************************/ #include "include.h" #include "List.h"
Status comp(ElemType c1,ElemType c2) { if(c1==c2*c2) return TRUE; else return FALSE; }
Status visit(ElemType *e) { printf("%d ",*e); printf("\n"); return OK; }
void main() { SqList L; int length; int i; int result;//函数的返回状态值
ElemType e; //------------------初始化函数测试---------------------
printf("初始化顺序表\n"); L=InitList(); printf("初始化后的结果:\n"); printf("L.elem=%u L.length=%d L.listsize=%d\n\n",L.elem,L.length,L.listsize); //-----------------------------------------------------
//------------------求顺序表长度函数测试---------------
length=ListLength(L); printf("表的长度为:%d\n",length); //-----------------------------------------------------
//------------------求顺序表是否为空函数测试-----------
result=ListEmpty(L); if(result) printf("顺序表为空表\n"); else printf("不是空表\n"); //-----------------------------------------------------
//------------------在i位置前插入元素------------------
printf("在表头依次插入1--10\n"); for(i=1;i<=10;i++) result=ListInsert(&L,1,i); printf("L.elem=%u L.length=%d L.listsize=%d\n\n",L.elem,L.length,L.listsize); printf("插入的内容为:\n"); for(i=1;i<=10;i++) printf("%d ",*(L.elem+i-1)); //-----------------------------------------------------
//------------------求顺序表是否为空函数测试-----------
result=ListEmpty(L); if(result) printf("顺序表为空表\n"); else printf("\n不是空表\n"); //-----------------------------------------------------
//------------------求顺序表长度函数测试---------------
length=ListLength(L); printf("\n表的长度为:%d\n",length); //-----------------------------------------------------
//-----------------获取某元素函数测试------------------
result=GetElem(L,3,&e); printf("第三个元素为:%d\n",e); //-----------------------------------------------------
//-----------------LocateElem函数测试------------------
for(i=3;i<=4;i++) { result=LocateElem(L,i,comp); if(result) printf("第%d个元素的值为%d的平方\n",result,i); else printf("没有值为%d的平方的元素\n",i); } //-----------------------------------------------------
//------------------获取前驱函数测试-------------------
result=PriorElem(L,3,&e); if(result) printf("元素3的前驱是:%d\n",e); //-----------------------------------------------------
//------------------获取后继函数测试-------------------
result=NextElem(L,5,&e); if(result) printf("元素5的后继是:%d\n",e); //-----------------------------------------------------
//------------------删除元素函数测试-------------------
printf("删除第4个元素\n"); result=ListDelete(&L,4,&e); if(result) { printf("删除的元素为:%d\n",e); printf("删除后顺序表的内容为:\n"); for(i=1;i<=L.length;i++) printf("%d ",*(L.elem+i-1)); printf("\n"); } //-----------------------------------------------------
//------------------访问元素函数测试-------------------
result=ListTraverse(L,visit); //----------------------------------------------------- //-------------------销毁表L--------------------------- result=DestroyList(&L); if(result) printf("销毁L后:L.elem=%u L.length=%d L.listsize=%d\n",L.elem,L.length,L.listsize); //------------------------------------------------------- }
|