线性表的顺序表示—插入操作
插入代码
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define InitSize 15 // 初始化扩容长度
#define MaxSize 100
typedef struct {
int data[MaxSize]; // 申请空间(静态)
int length; // 当前长度
}SeqList;
void InitList(SeqList& L) {
for (int i = 0; i < MaxSize; i++)
{
L.data[i] = 0; // 数据元素设置初始值
L.length = 0; // 初始长度
}
}
bool isertData(SeqList &L, int i,int data) {
if (i < 1 || i > MaxSize + 1)
{
return false;
}
// TODO 超出最大
if (L.length >= MaxSize)
{
return false;
}
for (int j = L.length; j >= i; j--)
{ // 第i个及其之后的数据后移一位
L.data[j] = L.data[j - 1];
}
// 在位置i处添加元素(下标从0开始)
L.data[i - 1] = data;
L.length++;
return true;
}
int main() {
SeqList L;
InitList(L);
printf("InitList 后的长度:%d \n",L.length);
int d = 78;
bool flag = isertData(L, 3, d);
return 0;
}
运行结果