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