编辑代码

#include <stdio.h>
#include <stdlib.h>
#define INITSIZE 50
// 数据结构-- 线性表-顺序表
// 内存分配方式: 动态分配
typedef struct{
	int* data;
	int maxsize,length;
}SqList;


int IncreaseMaxSize(SqList *sqlist,int newMaxSize){
    if (newMaxSize <= sqlist->maxsize) return 0;

    sqlist->maxsize = newMaxSize;
    newList = (int *)malloc(sizeof(int )*newMaxSize);

    for(int i=0;i<sqlist->length;i++){
        newList[i] = sqlist->data[i];
    }
    free(sqlist->data);
    sqlist->data = newList;
    return 1;
}

int InitSqList(SqList *sqlist){
	sqlist->data = (int *)malloc(sizeof(int)*INITSIZE);
	sqlist->maxsize = INITSIZE;
	sqlist->length = 0;
	if(sqlist->data == NULL) return 0;
	return 1;
}

// 以下操作均为按位查找
// 增
int InsertElem(SqList *sqlist,int index,int e){
	if(index<1 || index>sqlist->length+1) return 0;
	if(sqlist->length >= sqlist->maxsize) return 0;
	for(int j=sqlist->length;j>=index;j--){
		sqlist->data[j] = sqlist->data[j-1];
	}
	sqlist->data[index-1] = e;
	sqlist->length++;
	return 1;
}
// delet
int DeletElem(SqList*sqlist,int index){
    if(index<1||index >sqlist->length+1) return -999;
    int res;
    res = sqlist->data[index-1];
    for(int j=index;j<sqlist->length;j++){
        sqlist->data[j-1] = sqlist->data[j];
    }
    sqlist->length --;
    return res;
}


// fine by value   return index
int FindElem(SqList* sqlist,int v){
    int index = 0;
    for (index;index < sqlist->length;index++){
        if(sqlist->data[index] == v) return index+1 ;
    }
    return -999;
}


// test opt
int main()
{
	SqList MyList;
	int r1,r2,r3,r4,r5,r6;
	r1 = InitSqList(&MyList);
	printf("%d\n",r1);
	r2 = InsertElem(&MyList,1,2);
    r3 = InsertElem(&MyList,1,3);
    r4 = InsertElem(&MyList,1,4);
	printf("bool:%d%d%d\n",r2,r3,r4);
	printf("fristElem:%d\n",MyList.data[0]);
    
    r5 = DeletElem(&MyList,1);
    printf("bool:%d\n",r5);
    printf("res:%d\n",r5);
	printf("firstElem:%d\n",MyList.data[0]);
    
    r6 = FindElem(&MyList,2);
    printf("bool:%d\n",r6);
    printf("index:%d\n",r6);
	return 0;
}