1.顺序表学习
#include<stdio.h>
#include <stdlib.h>
#define ERROR 0
#define OK 1
typedef struct seqList {
int n;
int maxLength;
int* element;
}SeqList;
typedef int Status;
Status Init(SeqList* L, int mSize) {
L->maxLength = mSize;
L->n = 0;
L->element = (int*)malloc(sizeof(int) * mSize);
if (!L->element)
return ERROR;
return OK;
}
Status Insert(SeqList* L, int i, int x) {
int j;
if (i<-1 || i>L->n - 1)
return ERROR;
if (L->n == L->maxLength)
return ERROR;
for (j = L->n - 1; j > i; j--) {
L->element[j + 1] = L->element[j];
}
L->element[i + 1] = x;
L->n++;
return OK;
}
Status Delete(SeqList* L, int i) {
int j;
if (i<0 || i>L->n - 1)
return ERROR;
if (!L->n)
return ERROR;
for (j = i + 1; j < L->n; j++)
L->element[j - 1] = L->element[j];
L->n--;
return OK;
}
Status Change(SeqList* L, int i, int x) {
if (i<0 || i>L->n - 1)
return ERROR;
if (!L->n)
return ERROR;
L->element[i-1] = x;
return OK;
}
Status Find(SeqList L, int i, int *x) {
if (i < 0 || i>L.n - 1)
return ERROR;
*x = L.element[i];
return OK;
}
Status Ouput(SeqList* L) {
int i;
if (!L->n)
return ERROR;
for ( i = 0; i <=L->n-1; i++)
{
printf("%d ", L->element[i]);
}
return OK;
}
Status Destory(SeqList* L) {
L->n = 0;
L->maxLength = 0;
free(L->element);
return OK;
}
int main() {
SeqList L;
int n = 10;
int i;
Init(&L, n);
for (i = 0; i <n; i++)
{
Insert(&L, i - 1, i);
}
Ouput(&L);
int v = 0;
Find(L, 8, &v);
printf("\n");
printf("%d", v);
printf("\n");
Delete(&L, 1);
Ouput(&L);
printf("\n");
Change(&L, 6, 66);
Ouput(&L);
printf("\n");
return 0;
}