线性表的各种操作

函数定义文件

#include<stdio.h>
#include"sequencelist.h"
#include<stdlib.h>

int sequenceInit(SEQ *list)
{
    if(NULL==list)
    {
        return FAILURE;
    }

    list->date=(ElemType *)malloc(sizeof(ElemType)*size);

    list->length=0;

    return SUCESS;
}

int sequenceinsert(SEQ *list, int p, ElemType e)
{
    int i;

    if(list==NULL)
        return FAILURE;
    if(p>list->length+1||list->length>=size||p<1)
        return FAILURE;

    for(i=0; i<list->length-p+1;i++)
    {
        list->date[list->length-i]=list->date[list->length-i-1];
    }

    list->date[p-1]=e;
    list->length++;

    return SUCESS;
}

int sequencelen(SEQ list)
{
    return list.length;
}

int sequenceempty(SEQ list)
{
    return(list.length==0)? TRUE : FALSE;
}

int GetElems(SEQ list ,int p)
{
    if(p<1||p>list.length)
        return FAILURE;
    return list.date[p-1];
}

int sequencetra(SEQ list, void (*p)(ElemType))
{
    if(p==NULL)
        return FAILURE;
    int i;

    for(i=0;i<list.length;i++)
        p(list.date[i]);
}

int sequencefind(SEQ list,ElemType a)
{
    int i;
    for(i=0;i<list.length;i++)
    {
        if(list.date[i]==a)
            return i+1;
    }
    return FAILURE;
}

int sequencedelet(SEQ *list,int a)
{
    int i;
    if(list==NULL||a<1||a>list->length)
        return FAILURE;
    for(i=0;i<list->length-a;i++)
    {
        list->date[a-1+i]=list->date[a+i];
    }
    return SUCESS;

}

int sequenceclear(SEQ *list)
{
    if(list==NULL)
        return FAILURE;
    list->length=0;
    return SUCESS;
}


int sequencedes(SEQ *list)
{
    if(list==NULL)
        return FAILURE;
    free(list->date);
    return SUCESS;
}

main函数文件

#include<stdio.h>
#include "sequencelist.h"
#include<time.h>

void print(ElemType list)
{
    printf("%d\n",list);
    
}

int main()
{
    int ret;
    SEQ list;
    int p;
    int i,k=3;
    srand(time(NULL));
    ret=sequenceInit(&list);

    if(ret==SUCESS)
        printf("sucess!\n");
    else
        printf("failure!\n");
    for(i=0;i<10;i++)
    {
        ret=sequenceinsert(&list, i+1, rand() % 10);
         if(ret==SUCESS)
             printf("sucess!111\n");
         else
             printf("failure!111\n");
    }

    ret=sequencelen(list);

    printf("%d\n",ret);

    ret=sequenceempty(list);

    if(ret=TRUE)
        printf("not empty\n");
    else
        printf("empty");

    ret=GetElems(list,k);
    if(ret==FAILURE)
    {
        printf("shibai\n");
    }
    else
    {
        printf("%d\n",ret);
    }

    ret=sequencetra(list,print);
    if(ret==FAILURE)
        printf("yes\n");
    else
        printf("no\n");

    ret=sequencefind(list,1);
    if(ret==FAILURE)
        printf("not find\n");
    else
        printf("%d\n",ret);

    ret=sequencedelet(&list,4);
    if(ret==SUCESS)
        printf("chengong");
    else
        printf("shibai");
    sequencetra(list,print);

    ret=sequenceclear(&list);
    if(ret=SUCESS)
    printf("sucess!!!\n");
    else
        printf("failure!!!\n");
 sequencetra(list,print);

    ret=sequencedes(&list);

}

头文件

#ifndef _SEQUENCE_H
#define _SEQUENCE_H
#define size 10
#define SUCESS 10000
#define FAILURE 10001
#define TRUE 10002
#define FALSE 10003
typedef int ElemType;

struct sequencelist
{
    int length;
    ElemType *date;
};

typedef struct sequencelist SEQ;
int sequenceInit(SEQ *list);
int sequenceinsert(SEQ *list, int p, ElemType e);
int sequencelen(SEQ list);
int sequenceempty(SEQ list);
int GetElems(SEQ list ,int p);
int sequencetra(SEQ list, void (*p)(ElemType));
int sequencefind(SEQ list,ElemType a);
    int sequencedelet(SEQ *list,int a);
 int sequenceclear(SEQ *list);
  int sequencedes(SEQ *list);



#endif


猜你喜欢

转载自blog.csdn.net/qq_42719683/article/details/81367404
今日推荐