#include <stdio.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct {
ElemType elem[MAXSIZE];
int length;
} SqList;
/*³õʼ»¯Ë³Ðò±íL*/
void ListInitiate(SqList *L) {
L->length = 0;/*¶¨Òå³õʼÊý¾ÝÔªËظöÊý*/
}
/*·µ»Ø˳Ðò±íLµÄµ±Ç°Êý¾ÝÔªËظöÊý*/
int ListLength(SqList *L) {
return L->length;
}
/*ÔÚ˳Ðò±íLµÄλÖÃi£¨0 ¡Ü i ¡Ü length£©Ç°²åÈëÊý¾ÝÔªËØÖµx*/
/*²åÈë³É¹¦·µ»Ø1£¬²åÈëʧ°Ü·µ»Ø0*/
int ListInsert(SqList *L, int i, ElemType x){
int j;
if(L->length >= MAXSIZE) {
printf("˳Ðò±íÒÑÂúÎÞ·¨²åÈë! \n");
return 0;
} else if(i < 0 || i > L->length ) {
printf("²ÎÊýi²»ºÏ·¨! \n");
return 0;
} else {
for(j = L->length; j > i; j--) /*Ϊ²åÈë×ö×¼±¸*/
L->elem[j] = L->elem[j-1];
L->elem[i] = x;/*²åÈë*/
L->length ++;/*ÔªËظöÊý¼Ó1*/
return 1;
}
}
/*ɾ³ý˳Ðò±íLÖÐλÖÃi£¨0 ¡Ü i ¡Ü length - 1£©µÄÊý¾ÝÔªËØÖµ²¢´æ·Åµ½²ÎÊýxÖÐ*/
/*ɾ³ý³É¹¦·µ»Ø1£¬É¾³ýʧ°Ü·µ»Ø0*/
int ListDelete(SqList *L, int i, ElemType *x)
{
int j;
if(L->length <= 0) {
printf("˳Ðò±íÒÑ¿ÕÎÞÊý¾ÝÔªËØ¿Éɾ! \n");
return 0;
} else if(i < 0 || i > L->length-1) {
printf("²ÎÊýi²»ºÏ·¨");
return 0;
} else {
*x = L->elem[i];/*±£´æɾ³ýµÄÔªËص½²ÎÊýxÖÐ*/
for(j = i +1; j <= L->length-1; j++)
L->elem[j-1] = L->elem[j];/*ÒÀ´ÎÇ°ÒÆ
L->length--;/*Êý¾ÝÔªËظöÊý¼õ1*/
return 1;
}
}
/*ȡ˳Ðò±íLÖеÚi¸öÊý¾ÝÔªËصÄÖµ´æÓÚxÖУ¬³É¹¦Ôò·µ»Ø1£¬Ê§°Ü·µ»Ø0*/
int ListGet(SqList *L, int i, ElemType *x){
if(i < 0 || i > L->length-1) {
printf("²ÎÊýi²»ºÏ·¨! \n");
return 0;
} else {
*x = L->elem[i];
return 1;
}
}
int main() {
SqList myList;
int i , x;
ListInitiate(&myList);
for(i = 0; i < 10; i++)
ListInsert(&myList, i, i+1);
ListDelete(&myList, 4, &x);
for(i = 0; i < ListLength(&myList); i++) {
ListGet(&myListj,i,&x);
printf("%", x);
return 0;
}
}