- 顺序表的插入
注意:插入的时候元素是往后面移动的
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 10
typedef struct {
int data[MaxSize];
int length;
}SqList;
void InitList(SqList& L) {
for (int i = 0; i < MaxSize; i++) {
L.data[i] = 0;
}
L.length = 0;
}
bool ListInsert(SqList& L, int i, int e) {
if (i<1 || i>L.length + 1) {
return false;
}
if (L.length >= MaxSize) {
return false;
}
for (int j = L.length; j >= i; j--) {
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e;
L.length++;
return true;
}
int main() {
SqList L;
InitList(L);
for (int i = 0; i < 3; i++)
{
L.data[i] = i;
L.length++;
}
bool flag = ListInsert(L, 2, 10);
if (flag) {
printf("插入成功\n");
}
else {
printf("插入失败\n");
}
for (int i = 0; i < L.length; i++) {
printf("data[%d]=%d\n", i, L.data[i]);
}
return 0;
}
- 顺序表的删除
注意:删除完元素,元素是往前移动的
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 10
typedef struct {
int data[MaxSize];
int length;
}SqList;
void InitList(SqList& L) {
for (int i = 0; i < MaxSize; i++) {
L.data[i] = 0;
}
L.length = 0;
}
bool ListDelete(SqList& L, int i, int &e) {
if (i<1 || i>L.length + 1) {
return false;
}
e = L.data[i - 1];
for (int j = i; j < L.length;j++) {
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
int main() {
SqList L;
InitList(L);
for (int i = 0; i < 6; i++)
{
L.data[i] = i;
L.length++;
}
int e = -1;
bool flag = ListDelete(L, 3, e);
if (flag) {
printf("删除成功,删除的元素为:%d\n",e);
}
else {
printf("删除失败\n");
}
for (int i = 0; i < L.length; i++) {
printf("data[%d]=%d\n", i, L.data[i]);
}
return 0;
}