#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\n",L); //---------------------------------------------------------------------
//-----------------------判空函数测试----------------------------------
result=ListEmpty(L); if(result) printf("L
为空\n"); else printf("L
不为空\n"); //---------------------------------------------------------------------
//-------------------------插入函数测试--------------------------------
for(i=1;i<=5;i++) ListInsert(&L,1,i); printf("插入元素后的
L
:\n"); p=L; //p指向头结点
while(p->next) { printf("
%d
",p->next->data); p=p->next; } printf("\n"); //---------------------------------------------------------------------
//-----------------------删除函数测试----------------------------------
printf("删除第4个元素\n"); ListDelete(&L,4,&e); printf("删除后的
L
:\n"); p=L; //p指向头结点
while(p->next) { printf("
%d
",p->next->data); p=p->next; } printf("\n"); //---------------------------------------------------------------------
//-----------------------判空函数测试----------------------------------
result=ListEmpty(L); if(result) printf("L
为空\n"); else printf("L
不为空\n"); //---------------------------------------------------------------------
//-----------------------置空函数测试----------------------------------
printf("将L置空\n"); result=ClearList(&L); printf("置空后的L:\n");
result=ListEmpty(L); if(result) printf("L
为空\n"); else printf("L
不为空\n");
//---------------------------------------------------------------------
//-------------------------插入10个数--------------------------------
for(i=1;i<=10;i++) ListInsert(&L,1,i); printf("插入元素后的
L
:\n"); p=L; //p指向头结点
while(p->next) { printf("
%d
",p->next->data); p=p->next; } printf("\n"); //---------------------------------------------------------------------
//-------------------------计算L中元素个数函数测试---------------------
i=ListLength(L); printf("L中的元素的个数为:%d\n",i); //---------------------------------------------------------------------
//-------------------------获取L中第i个元素的函数---------------------
result=GetElem(L,6,&e); printf("第6个元素为:%d\n",e);
//---------------------------------------------------------------------
//-------------------------LocateElem
函数函数测试---------------------
printf("查看L中是否与4相等的元素\n"); if(i=LocateElem(L,4,compare)) printf("第%d个元素与4相等\n",i); else printf("没有与4相等的数据元素\n");
//---------------------------------------------------------------------
//-------------------------获取前驱函数测试----------------------------
printf("获取元素4的前驱元素\n"); //result=PriorElem(L,42,&e);
//没有的数据 将获取失败
result=PriorElem(L,4,&e); if(result==OK)
printf("元素4的前驱元素为:%d\n",e); else printf("获取失败\n"); //---------------------------------------------------------------------
//-------------------------获取后继函数测试----------------------------
printf("获取元素4的后继元素\n");
result=PriorElem(L,42,&e); //没有的数据
将获取失败
//result=NextElem(L,4,&e);
if(result==OK)
printf("元素4的后继元素为:%d\n",e); else printf("获取失败\n"); //---------------------------------------------------------------------
//-------------------------ListTraverse函数测试------------------------
printf("ListTraverse函数测试,输出L中的所有元素。\n"); result= ListTraverse(L,visit); printf("\n"); //---------------------------------------------------------------------
//-------------------------销毁函数测试--------------------------------
printf("销毁L前:L=%u\n",L); printf("销毁L...\n"); DestroyList(&L); printf("销毁L后:L=%u\n",L); //---------------------------------------------------------------------
}
|