当前位置: 首页 > news >正文

07 顺序表的插入操作

顺序表的插入操作

一、数据插入

在这里插入图片描述

​ 操作的步骤

​ 1)判断顺序表是否已满,如果满了,操作失败;

​ 2)判断插入位置是否合理,不合理则操作失败;

​ 3)从最后一个数据元素开始向前遍历到第index位置,分别将它们依次往后移一位;

​ 4)将要插入的元素填入第index位置处;

​ 5)顺序表长度加1。

int insert(SQL_LIST* L, int i, ElementType e) {// 判断顺序表是否已满,如果满了,操作失败if (L->length == MAX_SIZA) {return 0;}// 判断插入位置是否合理,如果不合理,操作失败if (i < 1 || i > L-length + 1) {return 0;}// 从最后一个元素开始向前到出入位置,将元素后移for (int j = L->length - 1; j >= i - 1; j--) {L->data[j + 1] = L->data[j];}// 将e填入第i-1个位置L->data[i - 1] = e;// 顺序表长度加1L->length++;return 1;
}int main() {// 定义顺序表SEQ_LIST list;// 对顺序表进行初始化init_list(&list);// 插入元素insert(&list, 1, 1);insert(&list, 2, 3);insert(&list, 3, 5);insert(&list, 4, 7);insert(&list, 5, 9);// 展示顺序表show(&list);return 0;
}

二、完整代码

#include <stdio.h>#define MAX_SIZA 100
typedef int ElementType;typedef struct _sql_list {ElementType data[MAX_SIZA];int length;
} SQL_LIST; // 初始化函数
void init_list(SQL_LIST *L) {L->length = 0;
} // 遍历顺序表 
void show(SQL_LIST *L) {int i;for (i = 0; i < L->length; i++) {printf("%d", L->data[i]);if (i < L->length-1) {printf(", ");}else {printf("\n");}}
}// 插入数据
int insert(SQL_LIST* L, int i, ElementType e) {int j;// 判断顺序表是否已满,如果满了,操作失败if (L->length == MAX_SIZA) {return 0;}// 判断插入位置是否合理,如果不合理,操作失败if (i < 1 || i > L->length + 1) {return 0;}// 从最后一个元素开始向前到出入位置,将元素后移for (j = L->length - 1; j >= i - 1; j--) {L->data[j + 1] = L->data[j];}// 将e填入第i-1个位置L->data[i - 1] = e;// 顺序表长度加1L->length++;return 1;
}int main() {// 定义顺序表SQL_LIST list;// 对顺序表进行初始化init_list(&list);// 插入元素insert(&list, 1, 1);insert(&list, 2, 3);insert(&list, 3, 5);insert(&list, 4, 7);insert(&list, 5, 9);// 展示顺序表show(&list);return 0;
}

http://www.mrgr.cn/news/60876.html

相关文章:

  • 如何在 MySQL 中创建一个完整的数据库备份?
  • ICM20948 DMP代码详解(104)
  • 如何在Windows系统上使用WSL2进行高效开发
  • 3.常见的线性规划应用实例
  • scratch繁星点点 2024年9月scratch三级真题 中国电子学会 图形化编程 scratch三级真题和答案解析
  • 直流电抗器的选择和计算
  • Nginx 的反向代理上
  • VictoriaMetrics 中文教程(10)集群版介绍
  • C++ | Leetcode C++题解之第517题超级洗衣机
  • 机器学习与神经网络:诺贝尔物理学奖的新方向
  • 学外语最快的方法是怎样的?
  • Three.js Shader 与自定义材质—深入理解与应用
  • 【大数据知识】HBase入门知识
  • C#实现word和pdf格式互转
  • unity后端kbengine用DOTween让 移动同步丝滑
  • CI/CD 的原理
  • Python中的函数是什么?
  • Python报错:AttributeError: module ‘abc‘ has no attribute ‘ABCMeta‘
  • 先来先服务(FCFS,First-Come, First-Served)调度算法
  • CSP-J复赛集训200-300分(19): [2024 CSP-J 复赛] T3:小木棍