#include "include.h" #include "list.h"
Status compare(ElemType c1,ElemType c2) {//比较两个数是否相等
if(c1==c2) return TRUE; else return FALSE; }
void visit(ElemType c) { printf("%d ",c); }
void main() { LinkList L,p; Status result; ElemType e; int i=0; //------------------------初始化函数测试-------------------------------
result=InitList(&L); printf("初始化L后:L=%u
",L); //---------------------------------------------------------------------
//-----------------------判空函数测试----------------------------------
result=ListEmpty(L); if(result) printf("L 为空
"); else printf("L 不为空
"); //---------------------------------------------------------------------
//-------------------------插入函数测试--------------------------------
for(i=1;i<=5;i++) ListInsert(&L,1,i); printf("插入元素后的 L :
"); p=L; //p指向头结点
while(p->next) { printf(" %d ",p->next->data); p=p->next; } printf("
"); //---------------------------------------------------------------------
//-----------------------删除函数测试----------------------------------
printf("删除第4个元素
"); ListDelete(&L,4,&e); printf("删除后的 L :
"); p=L; //p指向头结点
while(p->next) { printf(" %d ",p->next->data); p=p->next; } printf("
"); //---------------------------------------------------------------------
//-----------------------判空函数测试----------------------------------
result=ListEmpty(L); if(result) printf("L 为空
"); else printf("L 不为空
"); //---------------------------------------------------------------------
//-----------------------置空函数测试----------------------------------
printf("将L置空
"); result=ClearList(&L); printf("置空后的L:
");
result=ListEmpty(L); if(result) printf("L 为空
"); else printf("L 不为空
");
//---------------------------------------------------------------------
//-------------------------插入10个数--------------------------------
for(i=1;i<=10;i++) ListInsert(&L,1,i); printf("插入元素后的 L :
"); p=L; //p指向头结点
while(p->next) { printf(" %d ",p->next->data); p=p->next; } printf("
"); //---------------------------------------------------------------------
//-------------------------计算L中元素个数函数测试---------------------
i=ListLength(L); printf("L中的元素的个数为:%d
",i); //---------------------------------------------------------------------
//-------------------------获取L中第i个元素的函数---------------------
result=GetElem(L,6,&e); printf("第6个元素为:%d
",e);
//---------------------------------------------------------------------
//-------------------------LocateElem 函数函数测试---------------------
printf("查看L中是否与4相等的元素
"); if(i=LocateElem(L,4,compare)) printf("第%d个元素与4相等
",i); else printf("没有与4相等的数据元素
");
//---------------------------------------------------------------------
//-------------------------获取前驱函数测试----------------------------
printf("获取元素4的前驱元素
"); //result=PriorElem(L,42,&e); //没有的数据 将获取失败
result=PriorElem(L,4,&e); if(result==OK) printf("元素4的前驱元素为:%d
",e); else printf("获取失败
"); //---------------------------------------------------------------------
//-------------------------获取后继函数测试----------------------------
printf("获取元素4的后继元素
"); result=PriorElem(L,42,&e); //没有的数据 将获取失败
//result=NextElem(L,4,&e);
if(result==OK) printf("元素4的后继元素为:%d
",e); else printf("获取失败
"); //---------------------------------------------------------------------
//-------------------------ListTraverse函数测试------------------------
printf("ListTraverse函数测试,输出L中的所有元素。
"); result= ListTraverse(L,visit); printf("
"); //---------------------------------------------------------------------
//-------------------------销毁函数测试--------------------------------
printf("销毁L前:L=%u
",L); printf("销毁L...
"); DestroyList(&L); printf("销毁L后:L=%u
",L); //---------------------------------------------------------------------
}
|