定义、初始化顺序表 :
//定义、初始化顺序表
#include <stdio.h>
#define MaxSize 50
//顺序表数组 静态分配
typedef struct {
int data[MaxSize];
int length;
}SqList1;
//顺序表数组 动态分配
//动态分配语句:
// L.data =
typedef struct {
int* data;
int length;
}SqList2;
//初始化顺序表
void initList(SqList1& L) {
L.length = 4;
L.data[0] = 0;
L.data[1] = 1;
L.data[2] = 2;
L.data[3] = 3;
}
//main函数,数组下标从0开始
int main() {
SqList1 L;
initList(L);
//insertList(L, 4, 5);
//deleteList(L, 2);
printList(L);
return 0;
}
打印顺序表的数组:
void printList(SqList1 L) {
for (int i = 0; i < L.length; i++) {
printf("data[%d]=%d\n",i,L.data[i]);
}
}
顺序表的插入操作(在第i个位置,下表从0开始):
L.length不要忘记更改!!!
//顺序表 插入操作
void insertList(SqList1 &L, int i, int e) {
if (i<0 || i>L.length) return;
if (L.length >= MaxSize - 1) return;
for (int j = L.length - 1; j >= i; j--) {
L.data[j + 1] = L.data[j];
}
L.data[i] = e;
L.length++;
return;
}
顺序表的删除操作:
L.length不要忘记更改!!!
//顺序表 删除操作
void deleteList(SqList1& L, int i) {
if (i<0 || i>L.length - 1) return;
for (int j = i; j < L.length - 1; j++) {
L.data[j] = L.data[j + 1];
}
L.length--;
}
顺序表的按值查找:
//顺序表 按值查找
//顺序表下标从0开始
int findByElem(SqList1 L, int e) {
for (int i = 0; i < L.length; i++) {
if (e == L.data[i]) {
return i;
}
}
return -1;
}