数据结构顺序表C语言实现

数据结构算法实现

顺序表顺序储存结构C语言实现版

#include <stdio.h> #define MAXSIZE 100 #define OVERFLOW 0 #define OK 1 #define ERROR 0 int main(){

}
//顺序表顺序储存结构 ,这里泛型定义为整形 
typedef struct{ 
	int *elem;
	int lengh;
}SqList;


// 顺序表顺序储存初始化 
void InitList(SqList &L){
	L.elem= new int[MAXSIZE];
	if(!L.elem){
		return ;
	}
	L.lengh=0;
	
}

//顺序表顺序储存赋值
int SetElem(SqList L,int e){
	if(L.lengh==MAXSIZE){
		return ERROR;
	}
	
	L.elem[L.lengh]=e;
	L.lengh++;
	return OK;
} 

//线性表顺序储存的取值
int GetElem(SqList L,int e){
	return L.elem[e-1];
} 

//线性表顺序储存的插入
int  ListInsert(SqList &L,int i,int e){
	if(i<1||i>(L.lengh+1)){
		return ERROR;
	}
	if(L.lengh==MAXSIZE){
		return ERROR;
	}
	
	for(int j=i-1;j<L.lengh;j++){
	L.elem[j+1]=L.elem[j];	
	}
	L.elem[i-1]=e;
	L.lengh++;
	return OK;
}

//顺序表的删除 
int LIstDelete(SqList &L,int i){
	if(i<1||i>L.lengh){
		return ERROR;
	}
	for(int j=i-1;j<L.lengh-1;j++){
	L.elem[j]=L.elem[j+1];	
	}
	L.lengh--;
	return OK;
}

//顺序表的归并 
int  MergeList(SqList &L1,SqList &L2){
	if(L1.lengh+L2.lengh>=MAXSIZE){
		return ERROR;
	}
	
	for(int i=L1.lengh-1,j=0;i<L1.lengh+L2.lengh;i++,j++){
		L1.elem[i]=L2.elem[j];
	}
	L1.lengh=L1.lengh+L2.lengh;
	return OK;
}
经验分享 程序员 微信小程序 职场和发展