顺序表动态分配,数据元素类型为整型
大学基础数据结构
#include <stdio.h>
#include <crtdbg.h>
#include <corecrt_malloc.h>
typedef int Elemtype;
#define Init_SqL_dyn_size 10
#define add_size 10
typedef struct SqList_dynamic {
Elemtype* data;
int len;
int Maxsize;
}SqL_dyn;
bool Init_SqL_dyn(SqList_dynamic& L) {
L.data = (Elemtype*)malloc(sizeof(Elemtype)*Init_SqL_dyn_size);
L.len = 0;
L.Maxsize = 0;
}
bool SqL_dyn_size_add(SqList_dynamic& L) {
Elemtype* p;
p = (Elemtype*)malloc(sizeof(Elemtype) * (Init_SqL_dyn_size + add_size));
for (int i = 0; i < L.len; i++) {
p[i] = L.data[i];
}
L.data = p;
free(p);
L.Maxsize = L.len + add_size;
}
bool SqL_dyn_search_by_loc(SqList_dynamic L,int i,Elemtype&e) {
if (i<0 || i>L.len) return false;
e = L.data[i - 1];
}
bool SqL_dyn_search_by_val(SqList_dynamic L, Elemtype e, int* arr) {
for (int i = 0,j=0; i < L.len; i++) {
if (e == L.data[i]) {
arr[j] = i + 1;
j++;
}
}
}
void Print_SqL_dyn(SqList_dynamic L) {
printf("\n");
for (int i = 0; i < L.len; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
bool SqL_dyn_insert(SqList_dynamic& L,int i,Elemtype e) {
if (i<1 || i>L.len + 1) return false;
if (L.len = L.Maxsize) SqL_dyn_size_add(L);
for (int j = L.len; j >= i; j--) {
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e;
L.len++;
}
bool SqL_dyn_delet(SqList_dynamic& L, int i,Elemtype &e) {
}