8.2日报

学习内容:线性表:存储,插入,删除,求长度,遍历等等。

分为3部分:头文件,函数,主函数

#include "SequenceList.h"
#include <stdlib.h>
#include <stdio.h>
int SequenceInit(SqList *l)
{
    if(NULL==l)
    {
        return FAILURE;
    }
    l->length=0;
    l->data=(ElemType *)malloc(sizeof(ElemType));
    if(NULL==l->data)
    {
        return FAILURE;
    }
    return SUCCESS;
}
int SequenceInsrt(SqList *l,int p,ElemType e)
{
    int i;

    if(NULL==l)
    {
        return FAILURE;
    }
    if(p > l->length+1 || l->length >= SIZE || p<1)
    {
        return FAILURE;
    }
    for(i=0;i < l->length-p+1;i++)
    {
        l->data[l->length-i]=l->data[l->length-i-1];
    }
    l->data[p-1]=e;
    l->length++;
    return SUCCESS;
}
int SequenceLength(SqList l)
{
    return l.length;
}
int SequenceEmpty(SqList l)
{
    return (l.length==0) ? TRUE : FALSE;
}


int GetElem(SqList l,int p,ElemType *e)
{
    if(p < 1 || p > l.length)
    {
        return FAILURE;
    }
    *e=l.data[p-1];
    return SUCCESS;
}
int SequenceTraverse(SqList l,void (*p)(ElemType))
{
    if(p==NULL)
    {
        return FAILURE;
    }
    int i;
    for(i=0; i < l.length; i++)
    {
        p(l.data[i]);
    }
    return SUCCESS;
}
int LocateElem(SqList l,ElemType e)
{
    int i;
    for(i = 0; i<l.length;i++)
    {
        if(e==l.data[i])
        {
            return i+1;
        }
    }
    return FAILURE;
}
int SquenceDelete(SqList *l,int p,ElemType *e)
{
    if(NULL==l)
    {
        return FAILURE;
    }
    if(p < 1 || p > l->length)
    {
        return FAILURE;
    }
    int i;
    *e=l->data[p-1];
    for(i=0;i<l->length;i++)
    {
        l->data[p-1+i]=l->data[p+i];

    }
}
int SequenceClear(SqList *l)
{
    if(l==NULL)
    {
        return FAILURE;
    }
    l->length=0;
    return SUCCESS;
}
int SequenceDestroy(SqList *l)
{
    if(l==NULL)
    {
        return FAILURE;
    }
    l->length=0;
    free(l->data);
    l->data=NULL;
    return SUCCESS;
}









#include "SequenceList.h"
#include <stdio.h>
#include <stdlib.h>
void print(ElemType e)
{
    printf("%d",e);
}

int main()
{
    int i;
    int ret;
    SqList list;
    srand(time(NULL));
    ret=SequenceInit(&list);
    if(ret==SUCCESS)
    {
        printf("Init SUCCESS!\n");
    }
    else
    {
        printf("Init FAILURE!\n");
    }
    for(i=0;i<5;i++)
    {
        ret=SequenceInsrt(&list, i+1,rand()%10);
        if(FAILURE == ret)
        {
            printf("Insert Failure\n");
        }
        else
        {
            printf("Insert Success\n");
        }
    }
    ret=SequenceLength(list);
    printf("length is:%d\n",ret);

    ret=SequenceEmpty(list);
    if(ret==TRUE)
    {
        printf("is empty!\n");
    }
    else
    {
        printf("not empty!\n");
    }
    int p=3;
    ElemType e;
    ret=GetElem(list,p,&e);
    if(FAILURE==ret)
    {
        printf("Get Element Failure!\n");
    }
    else
    {
        printf("%dth element is%d!\n",p,e);
    }
    ret = SequenceTraverse(list,print);

    if(ret == FAILURE)
    {
        printf("Traverse Failure!\n");
    }
    else
    {
        printf("Traverse Success!\n",p,e);
    }
    e=3;
    ret=LocateElem(list,e);
    if(ret==FAILURE)
    {
        printf("%d is not exist!\n",e);
    }
    else
    {
        printf("%d is %dth element!\n",e,ret);
    }

    ret=SquenceDelete(&list,p,&e);
    if(SUCCESS==ret)
    {
        printf("Delete %d Success!\n",e);
    }
    else
    {
        printf("Delete Failure!\n");
    }
    ret =SequenceClear(&list);
    if(SUCCESS==ret)
    {
        printf("Clear Success!\n",e);
    }
    else
    {
        printf("Clear Failure!\n");
    }
    ret =SequenceDestroy(&list);
    if(SUCCESS==ret)
    {
        printf("Destroy Success!\n",e);
    }
    else
    {
        printf("Destroy Failure!\n");
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42487214/article/details/81367405
8.2
今日推荐