#include <stdio.h>
#include <stdlib.h>
#include "SqList.h"
int main()
{
SqList L;
L.length = 0;
listInsert(&L,1,1);
listInsert(&L,2,2);
listInsert(&L,3,3);
printList(L);
length(L);
isEmpty(L);
listInsert(&L,4,4);
listInsert(&L,5,5);
listInsert(&L,6,6);
printList(L);
length(L);
ElemType a;
listDelete(&L, 4, a);
printList(L);
length(L);
printf("%d\n",locateElem(L, 6));
printf("%d\n",getElem(L, 3));
return 0;
}
#define MaxSize 50
typedef int ElemType;
typedef struct {
ElemType data[50];
int length;
}SqList;
typedef struct{
ElemType *data;
int length;
}SeqList;
int length(SqList L);
int locateElem(SqList L, ElemType e);
ElemType getElem(SqList L, int i);
int listInsert(SqList *L, int i, ElemType e);
int listDelete(SqList *L, int i, ElemType *e);
void printList(SqList L);
int isEmpty(SqList L);
void destoryList(SqList *L);
#include "SqList.h"
int length(SqList L){
printf("%d\n",L.length);
return L.length;
}
int locateElem(SqList L, ElemType e){
for(int i = 0; i < L.length; i++){
if(L.data[i] == e)
return i + 1;
}
return 0;
}
ElemType getElem(SqList L, int i){
if(i > L.length)
return 999;
return L.data[i - 1];
}
int listInsert(SqList *L, int i, ElemType e){
if(i < 1 || i > L->length + 1)
return 0;
if(L->length >= MaxSize)
return 0;
for(int j = L->length; j > i - 1; j--){
L->data[j] = L->data[j - 1];
}
L->data[i - 1] = e;
L->length++;
return 1;
}
int listDelete(SqList *L, int i, ElemType *e){
if(i < 1 || i > L->length)
return 0;
if(L->length <= 0)
return 0;
e = L->data[i - 1];
for(int j = i - 1; j < L->length - 1; j++){
L->data[j] = L->data[j + 1];
}
L->length--;
return 1;
}
void printList(SqList L){
int l = L.length;
for(int i = 0; i < l; i++){
printf("%d ",L.data[i]);
}
printf("\n");
}
int isEmpty(SqList L){
return L.length <= 0 ? 1 : 0;
}
void destoryList(SqList *L){
}