以后每天都要坚持 不可一日间断!
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define INIT_SIZE 20
#define ADD_SIZE 10
typedef struct {
int *elem;
int count;
int size;
}SqList;
int Init(SqList *L)
{
L->elem = (int *)malloc(sizeof(int)*INIT_SIZE);
if(L->elem == NULL)
{
return -1;
}
L->size = INIT_SIZE;
L->count = 0;
return 0;
}
int Insert(SqList *L,int pos,int elem)
{
if(L->elem == NULL)
{
return -1;
}
if(pos<1||pos>L->count+1)
{
return -1;
}
if(L->count == L->size)
{
int *p = (int *)realloc(L->elem,sizeof(int)*(L->size+ADD_SIZE));
if(p == NULL)
{
return -1;
}
L->elem = p;
L->size += ADD_SIZE;
}
for(int i=L->count-1;i>=pos-1;i--)
{
L->elem[i+1] = L->elem[i];
}
L->elem[pos-1]=elem;
L->count+=1;
return 0;
}
int Delete(SqList *L,int pos,int *elem)
{
if(L->elem == NULL)
{
return -1;
}
if(pos<1||pos>L->count)
{
return -1;
}
*elem = L->elem[pos-1];
for(int i=pos-1;i<L->count;i++)
{
L->elem[i] = L->elem[i+1];
}
L->count-=1;
return 0;
}
int Getelem(SqList L,int pos,int *elem)
{
if(L.elem == NULL)
{
return -1;
}
*elem = L.elem[pos-1];
return 0;
}
int Locateelem(SqList L,int elem)
{
for(int i=0;i<L.count;i++)
{
if(L.elem[i]==elem)
{
return i+1;
}
}
return 0;
}
int Traverse(SqList L)
{
if(L.elem == NULL)
{
printf("NO elem in list !");
}
for(int i=0;i<L.count;i++)
{
printf("%d\t",L.elem[i]);
}
return 0;
}