数据结构(一) 线性表
顺序表
存储结构
#define ElemType int
#define MAXSIZE 100
typedef struct{
ElemType *elem;//初始地址
int length;//长度
}SqList;
初始化
void init(SqList& L){
L.elem = new ElemType[MAXSIZE];
if(!L.elem){
cout << "内存分配失败" << endl;
return;
}
L.length = 0;
}
创建长度为n的顺序表
void createList(SqList &L, int n){
if(n <= 0 || n > MAXSIZE){
cout << "n值不合法" << endl;
return;
}
L.length = 0;
cout << "请输入线性表" << n << "个数据:";
for(int i = 0; i < n; i++){
cin >> L.elem[i];
L.length++;
}
}
获取第i个元素
ElemType getElem(SqList L, int i){
if(i < 1 || i > L.length){
cout << "输入的下标有误" << endl;
return 0;
}
return L.elem[i - 1];
}
查找某个元素
int locateElem(SqList L, ElemType e){
for(int i = 0; i < L.length; i++){
if(e == L.elem[i]){
return i + 1;
}
}
return 0;
}
在第i个元素插入元素
void ListInsert(SqList &L, int i, ElemType e){
if((i < 1) || (i > L.length + 1)){
cout << "i值不合法" << endl;