C语言顺序表插入删除操作代码示例与详解

简介

本篇博客提供了一个C语言顺序表插入和删除操作的代码示例,并对其进行了详细的解释。顺序表是一种线性表数据结构,其元素在内存中按顺序存储。

代码示例c#include <stdio.h>#include <stdlib.h>

typedef struct { int *elem; int length;} sqlist;

void insert(sqlist &L, int i, int e){ if (i < 1 || i > L.length + 1) return; for (int j = L.length; j >= i; j--) L.elem[j] = L.elem[j - 1]; L.elem[i - 1] = e; ++L.length;}

void del(sqlist &L, int i){ if (i < 1 || i > L.length) return; for (int j = i; j < L.length; j++) L.elem[j - 1] = L.elem[j]; --L.length;}

void print(sqlist &L){ for (int j = 0; j < L.length; j++) printf('%d ', L.elem[j]);}

int main(){ sqlist L; int *a = (int *)malloc(sizeof(int) * 10); a[0] = 10; a[1] = 20; a[2] = 30; a[3] = 40; a[4] = 50; a[5] = 60; L.length = 6; L.elem = a; insert(L, 3, 25); del(L, 3); print(L); free(L.elem); // 释放动态分配的内存空间 return 0;}

代码解释

  1. 结构体定义: 首先定义了一个名为 sqlist 的结构体,包含两个成员:elem 指向动态分配的数组,存储顺序表的元素;length 表示顺序表的长度。

  2. insert 函数: 该函数用于在顺序表 L 的第 i 个位置插入元素 e。 * 首先判断插入位置是否合法。 * 然后将 i 及其后面的元素后移一位,腾出位置 i。 * 最后将元素 e 放入位置 i,并将顺序表长度加 1。

  3. del 函数: 该函数用于删除顺序表 L 中第 i 个位置的元素。 * 首先判断删除位置是否合法。 * 然后将 i 后面的元素前移一位,覆盖掉位置 i 的元素。 * 最后将顺序表长度减 1。

  4. print 函数: 该函数用于打印顺序表 L 中的所有元素。

  5. main 函数: 主函数中定义了一个 sqlist 类型的变量 L,并进行初始化操作。 * 使用 malloc 函数动态分配内存空间给数组 a,并将一些初始值存入数组中。 * 设置 L 的长度为 6,并将 L.elem 指向数组 a。 * 调用 insert 函数在第 3 个位置插入元素 25。 * 调用 del 函数删除第 3 个位置的元素。 * 调用 print 函数打印修改后的顺序表。 * 最后使用 free 函数释放动态分配的内存空间。

总结

本篇博客介绍了C语言顺序表插入和删除操作的代码示例,并对代码进行了详细的解释。通过学习本篇博客,你应该对顺序表的插入和删除操作有了更深入的理解。

C语言顺序表插入删除操作代码示例与详解

原文地址: http://www.cveoy.top/t/topic/olD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录