SeqList——顺序表

来源:互联网 发布:c语言单引号的作用 编辑:程序博客网 时间:2024/05/08 18:36
/*** File name: SeqList.h** Author: ZhouFeng** Date: 2012/03/25*/#ifndef SEQ_LIST_H#define SEQ_LIST_H#define MAX_SIZE 100#define ERROR 0#define SUCCESS 1typedef int EleType;typedef struct SeqList{    EleType _seqList[MAX_SIZE];    int length;}SeqList; void InitSeqList(SeqList *L);int InsertEle(SeqList *L, int index, EleType data);int DeleteEle(SeqList *L, int index, EleType *data);int GetEle(SeqList *L, int index, EleType *data);int GetSeqListLength(SeqList *L);#endif
/*** File name: SeqList.c** Author: ZhouFeng** Date: 2012/03/25*/#include #include "SeqList.h"void InitSeqList(SeqList *L){    if(L == NULL)    {return;    }    L->length = 0;}int InsertEle(SeqList *L, int index, EleType data){    int i = 0;        if(L == NULL && (index < 0 && index > L->length - 1)|| L->length >= MAX_SIZE)    {return ERROR;    }    /* insert a new element front of 'index'*/    for(i = L->length - 1; i > index - 1; --i)    {(L->_seqList)[i + 1] = (L->_seqList)[i];    }    (L->_seqList)[index] = data;    ++L->length;    return SUCCESS;}int DeleteEle(SeqList *L, int index, EleType *data){    int i = 0;        if(L == NULL && index < 0 && index > L->length - 1&& data == NULL && L->length <= 0)    {return ERROR;    }    *data = (L->_seqList)[index];    for(i = index; i < L->length; ++i)    {(L->_seqList)[i] = (L->_seqList)[i + 1];    }    --L->length;    return SUCCESS;}int GetEle(SeqList *L, int index, EleType *data){    if(L == NULL && index < 0 && index > L->length - 1)    {return ERROR;    }    *data = (L->_seqList)[index];    return SUCCESS;}int GetSeqListLength(SeqList *L){    return L->length;}
#include #include #include "SeqList.h"/* Print */void PrintSeqList(SeqList *L){    int i = 0;    for(i = 0; i < L->length; )    {printf("%4d", (L->_seqList)[i]);++i;if(i % 5 == 0){    printf("\n");}    }}int main(int argc, char* argv[]){    int i = 0;    SeqList L;    srand((unsigned long)time());        InitSeqList(&L);    for(i = 0; i < MAX_SIZE; ++i)    {InsertEle(&L, 0, rand() % 30);    }    PrintSeqList(&L);    return 0;}