예제 #1
0
파일: test1.c 프로젝트: kobemiller/mycode
int main()
{
    Sqlist La, Lb, Lc;
    int j;

    InitList(La);
    for ( j = 1; j <= 5; j++ )
        ListInsert_before(La, j, j);
    printf("La = ");
    ListTraverse(La, print1);

    InitList(Lb);
    for ( j = 1; j <= 5; j++ )
        ListInsert_before(Lb, j, 2*j);
    printf("Lb = ");
    ListTraverse(Lb, print1);

    MergeList2(La, Lb, Lc);
    printf("Lc = ");
    ListTraverse(Lc, print1);

    DestroyList(La);
    return 0;
}
예제 #2
0
//expand
void test2()
{
	SLinkList L;
	SLinkList Lk;
	ElemType e;
	int i=0;
	int N=10;
	int n;

	InitSpace(L);
	InitList(L,n);
	
	printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n));
	printf("表长%d\n",ListLength(L,n));
	
	for(i=1;i<=5;i++)
	{
		ListInsert(L,n,i,2*i);
	}
	
	printf("插入5个元素(2,4,6,8,10),结果:");
	TraverseList(L,n,visit);
	printf("\n");
	
	i=3;
	if(PriorElem(L,n,3,e))
		printf("%d的前驱为%d\n",i,e);
	if(NextElem(L,n,3,e))
		printf("%d的后继为%d\n",i,e);
	
	for(i=1;i<=5;i++)
	{
		ListInsert(L,n,2*i-1,2*i-1);
	}
	
	printf("插入5个元素(1,3,5,7,9)后结果:");
	TraverseList(L,n,visit);
	printf("\n");
	
	printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n));
	printf("表长%d\n",ListLength(L,n));
	
	for(i=9;i<=10;i++)
	{
		printf("删除%d个元素为",i);
		if(ListDelete(L,n,i,e))
			printf("%d\n",e);
		else
			printf("删除失败\n");
	}
	
	int j=0;
	for(i=-1;i<=1;i++)
	{
		printf("查找%d所在位置",i);
		j=LocateElem(L,n,i,compare);
		if(j)
			printf("%d\n",j);
		else
			printf("查找失败\n");
	}

		
	for(i=-1;i<=N+5;i+=3)
	{
		if(PriorElem(L,n,i,j))
			printf("查找到%d的前驱%d\n",i,j);
		else
			printf("查找%d的前驱失败\n",i);

		if(NextElem(L,n,i,j))
			printf("查找到%d的后继%d\n",i,j);
		else
			printf("查找%d的后继失败\n",i);

	}

	j=ClearList(L,n);
	if(j)
		printf("清空链表成功");
	else
		printf("清空失败");
	
	printf("表是否为空(1:非空,0:空),结果:%d\n",!ListEmpty(L,n));
	printf("表长%d\n",ListLength(L,n));

	MergeList2(Lk);
	printf("\n");
}