#include <stdio.h>
#include<malloc.h>
#define INIT_SIZE 100
#define LIST_INCRE 10
struct SqList{
int* pElem;
int length;
int listsize;
};
typedef struct SqList SqList;
SqList L;
int init_SqList(SqList &L){
L.pElem=(int*)malloc(INIT_SIZE*sizeof(int));
L.length=0;
L.listsize=INIT_SIZE;
return 0;
}
int destroy_SqList(SqList &L){
free(L.pElem);
L.length=0;
L.listsize=0;
}
int clear_SqList(SqList &L){
L.length=0;
free(L.pElem);
}
int insert_SqList(SqList &L,int i,int data){
if(i<0 || i>L.length) exit(-1);
if(L.length>=L.listsize){
L.pElem=(int*)realloc(L.pElem,L.listsize+LIST_INCRE);
}
int* p=L.pElem+L.length-1;
int* q=L.pElem+i;
for(;p>=q;p--){
*(p+1)=*(p);
}
*q=data;
L.length++;
return 0;
}
int delete_SqList(SqList &L,int i){
if(i<0 || i>L.length-1) exit(-1);
int* p=L.pElem+i;
int* q=L.pElem+L.length-1;
while(p<q){
*p=*(p+1);
p++;
}
L.length--;
}
int show_SqList(SqList &L){
if(L.length==0) {
printf("链表为空\n");
return 0;
}
int* p=L.pElem;
int* q=L.pElem+L.length-1;
while(p<=q){
printf("%d ",*p);
p++;
}
printf("\n");
return 0;
}
int isEmpty_SqList(SqList &L){
if(L.length==0) return 1;
else return 0;
}
int main(int argc, char *argv[])
{
init_SqList(L);
insert_SqList(L,0,34);
insert_SqList(L,0,43);
insert_SqList(L,0,1);
show_SqList(L);
delete_SqList(L,1);
show_SqList(L);
clear_SqList(L);
show_SqList(L);
return 0;
}
【数据结构C实现】1.顺序表实现
最新推荐文章于 2017-03-30 18:10:21 发布