顺序表静态分配,元素类型为整型
大学基础数据结构
#include <stdio.h>
#define Maxsize 10
typedef int ElemType;
typedef struct SqList_static{
ElemType data[Maxsize];
int len;
}SqList_static;
void InitSqList_static(SqList_static &L){
for (int i=0; i < Maxsize; i++) {
L.data[i] = 0;
}
L.len = 0;
}
void Print_SqList_static(SqList_static L) {
printf("\n");
for (int i = 0; i <L.len; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
bool SqList_static_Search_by_loc(SqList_static L,int i,ElemType &e) {
if (i<1 || i>L.len) return false;
if (L.data == 0) return false;
e=L.data[i-1];
return true;
}
void SqList_static_Search_by_val(SqList_static L, ElemType e,int a[]) {
for (int i = 0,j=0; i < L.len; i++) {
if (e == L.data[i]) {
a[j] = i + 1;
j++;
}
}
}
bool SqList_static_Insert(SqList_static& L,int i,ElemType e) {
if (L.len >=Maxsize) return false;
if (i<1 || i>L.len + 1) return false;
for (int j=L.len; j >=i; j--) {
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.len++;
return true;
}
bool auto_SqList_static_Insert(SqList_static& L, ElemType e[],int num) {
if (num+ L.len <= Maxsize) {
for (int k = 0; k <num; k++) {
SqList_static_Insert(L, L.len + 1, e[k]);
}
return true;
}
else return false;
}
bool SqList_delet(SqList_static& L, int i,ElemType &e) {
if (L.len ==0 )return false;
if (i<1 || i>L.len )return false;
e = L.data[i - 1];
for (int j = i; j < L.len; j++) {
L.data[j - 1] = L.data[j];
}
L.len--;
}
int main() {
SqList_static L;
InitSqList_static(L);
ElemType e[5] = { 1,2,3,4,5 };
auto_SqList_static_Insert(L,e,5);
auto_SqList_static_Insert(L, e, 5);
Print_SqList_static(L);
ElemType ret;
SqList_static_Search_by_loc(L, 3, ret);
printf("%d\n", ret);
int a[Maxsize] = { -1 };
SqList_static_Search_by_val(L, (ElemType)2,a);
for (int i = 0; i < Maxsize; i++) {
printf("%d", a[i]);
}
printf("\n");
ElemType delet[10];
SqList_delet(L, 1,delet[0]);
SqList_delet(L, 9,delet[1]);
printf("delet0=%d,delet1=%d", delet[0], delet[1]);
Print_SqList_static(L);
SqList_static_Insert(L, 1, 1);
SqList_static_Insert(L, 2, 2);
SqList_static_Insert(L, 3, 3);
Print_SqList_static(L);
SqList_delet(L, 1, delet[0]);
SqList_delet(L, 1, delet[1]);
SqList_delet(L, 1, delet[2]);
SqList_delet(L, 1, delet[3]);
SqList_delet(L, 1, delet[4]);
SqList_delet(L, 1, delet[5]);
SqList_delet(L, 1, delet[6]);
SqList_delet(L, 1, delet[7]);
SqList_delet(L, 1, delet[8]);
Print_SqList_static(L);
for (int i = 0; i < 10; i++) {
printf("%d", delet[i]);
}
}