函数定义文件
#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