C语言中实现顺序表的插入、删除和更新操作(附带源码)

C语言中,顺序表是一种线性表的存储结构,可以通过数组来实现。以下是顺序表的插入、删除和更新操作的基本示例:

cpp 复制代码
#include <stdio.h>

#define MAX_SIZE 100

// 定义顺序表结构
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 插入操作
int insert(SeqList *list, int position, int value) {
    // 判断插入位置是否合法
    if (position < 1 || position > list->length + 1) {
        printf("插入位置不合法\n");
        return 0; // 插入失败
    }

    // 判断顺序表是否已满
    if (list->length >= MAX_SIZE) {
        printf("顺序表已满,无法插入\n");
        return 0; // 插入失败
    }

    // 将插入位置之后的元素依次后移
    for (int i = list->length; i >= position; i--) {
        list->data[i] = list->data[i - 1];
    }

    // 插入新元素
    list->data[position - 1] = value;

    // 长度加1
    list->length++;

    return 1; // 插入成功
}

int main() {
    SeqList myList = {{1, 2, 3, 4, 5}, 5};

    // 在第3个位置插入元素6
    insert(&myList, 3, 6);

    // 打印插入后的顺序表
    for (int i = 0; i < myList.length; i++) {
        printf("%d ", myList.data[i]);
    }

    return 0;
}
  1. 删除操作:
cpp 复制代码
#include <stdio.h>

// 定义顺序表结构
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 删除操作
int delete(SeqList *list, int position) {
    // 判断删除位置是否合法
    if (position < 1 || position > list->length) {
        printf("删除位置不合法\n");
        return 0; // 删除失败
    }

    // 将删除位置之后的元素依次前移
    for (int i = position; i < list->length; i++) {
        list->data[i - 1] = list->data[i];
    }

    // 长度减1
    list->length--;

    return 1; // 删除成功
}

int main() {
    SeqList myList = {{1, 2, 3, 4, 5}, 5};

    // 删除第3个位置的元素
    delete(&myList, 3);

    // 打印删除后的顺序表
    for (int i = 0; i < myList.length; i++) {
        printf("%d ", myList.data[i]);
    }

    return 0;
}
  1. 更新操作:
cpp 复制代码
#include <stdio.h>

// 定义顺序表结构
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 更新操作
int update(SeqList *list, int position, int newValue) {
    // 判断更新位置是否合法
    if (position < 1 || position > list->length) {
        printf("更新位置不合法\n");
        return 0; // 更新失败
    }

    // 更新指定位置的元素值
    list->data[position - 1] = newValue;

    return 1; // 更新成功
}

int main() {
    SeqList myList = {{1, 2, 3, 4, 5}, 5};

    // 更新第3个位置的元素为10
    update(&myList, 3, 10);

    // 打印更新后的顺序表
    for (int i = 0; i < myList.length; i++) {
        printf("%d ", myList.data[i]);
    }

    return 0;
}

这些示例代码演示了如何在C语言中实现顺序表的插入、删除和更新操作。你可以根据需要进行修改和扩展。

希望你也学会了,更多编程请来二当家的素材网:https://www.erdangjiade.com

相关推荐
报错小能手13 分钟前
STL_unordered_map
开发语言·c++·哈希算法
CreasyChan28 分钟前
C#特性(Attributes)详解
开发语言·c#
历程里程碑31 分钟前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
csbysj202039 分钟前
JavaScript AI 编程助手
开发语言
t1987512842 分钟前
基于MATLAB的线性判别分析(LDA)降维算法实现方案
开发语言·算法·matlab
weixin_462446231 小时前
nodejs 下使用 Prettier 美化单个 JS 文件(完整教程)
开发语言·javascript·ecmascript
醇氧1 小时前
【Windows】从守护到终结:解析一个 Java 服务的优雅停止脚本
java·开发语言·windows
reasonsummer1 小时前
【办公类-18-07】20251215(Python)“口腔检查涂氟信息”批量生成打印(区名、学号、姓名、学校、班级、身份证、户籍、性别、民族)
开发语言·python
小鹿学程序1 小时前
FileZilla连接到虚拟机
java·服务器·开发语言
未来魔导1 小时前
Gin版本的路由总结
开发语言·llm·gin·路由