数据结构顺序表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;
}
